respawning on older versions

fixed respawning on pre s6, fixed a crash for some s5 builds, work on ai a bit, start on blueprint decompiler
This commit is contained in:
Milxnor
2023-05-20 10:22:47 -04:00
parent bb5a5620e8
commit 33433ea9de
30 changed files with 2082 additions and 77 deletions

View File

@@ -0,0 +1,50 @@
#pragma once
#include "Array.h"
#include <fstream>
#include "reboot.h"
class FKismetBytecodeDisassembler
{
private:
std::vector<uint8> Script;
std::string Indents;
std::ofstream Stream;
public:
void DisassembleStructure(UFunction* Source);
int32 ReadINT(int32& ScriptIndex);
uint64 ReadQWORD(int32& ScriptIndex);
uint8 ReadBYTE(int32& ScriptIndex);
std::string ReadName(int32& ScriptIndex);
uint16 ReadWORD(int32& ScriptIndex);
float ReadFLOAT(int32& ScriptIndex);
CodeSkipSizeType ReadSkipCount(int32& ScriptIndex);
std::string ReadString(int32& ScriptIndex);
std::string ReadString8(int32& ScriptIndex);
std::string ReadString16(int32& ScriptIndex);
uint8 SerializeExpr(int32& ScriptIndex);
void ProcessCastByte(int32 CastType, int32& ScriptIndex);
void ProcessCommon(int32& ScriptIndex, uint8 Opcode);
void AddIndent()
{
Indents += (" ");
}
void DropIndent()
{
// Blah, this is awful
// Indents.LeftInline(Indents.Len() - 2);
Indents = Indents.substr(2);
}
template <typename T>
T* ReadPointer(int32& ScriptIndex)
{
return (T*)ReadQWORD(ScriptIndex);
}
};