Path: blob/master/RSDKv5/RSDK/Scene/Legacy/v3/ScriptLegacyv3.hpp
1175 views
1namespace Legacy2{34namespace v35{67#define LEGACY_v3_SCRIPTDATA_COUNT (0x40000)8#define LEGACY_v3_JUMPTABLE_COUNT (0x4000)9#define LEGACY_v3_FUNCTION_COUNT (0x200)1011#define LEGACY_v3_JUMPSTACK_COUNT (0x400)12#define LEGACY_v3_FUNCSTACK_COUNT (0x400)1314struct ScriptPtr {15int32 scriptCodePtr;16int32 jumpTablePtr;17};1819struct ScriptFunction {20#if LEGACY_RETRO_USE_COMPILER21char name[0x20];22#endif23ScriptPtr ptr;24};2526struct ObjectScript {27int32 frameCount;28int32 spriteSheetID;29ScriptPtr subMain;30ScriptPtr subPlayerInteraction;31ScriptPtr subDraw;32ScriptPtr subStartup;33int32 frameListOffset;34AnimationFile *animFile;35};3637struct ScriptEngine {38int32 operands[10];39int32 tempValue[8];40int32 arrayPosition[3];41int32 checkResult;42};4344enum ScriptSubs { SUB_MAIN = 0, SUB_PLAYERINTERACTION = 1, SUB_DRAW = 2, SUB_SETUP = 3 };4546extern ObjectScript objectScriptList[LEGACY_v3_OBJECT_COUNT];4748extern ScriptFunction scriptFunctionList[LEGACY_v3_FUNCTION_COUNT];49extern int32 scriptFunctionCount;5051extern int32 scriptCode[LEGACY_v3_SCRIPTDATA_COUNT];52extern int32 jumpTable[LEGACY_v3_JUMPTABLE_COUNT];5354extern int32 jumpTableStack[LEGACY_v3_JUMPSTACK_COUNT];55extern int32 functionStack[LEGACY_v3_FUNCSTACK_COUNT];5657extern int32 scriptCodePos;58extern int32 scriptCodeOffset;59extern int32 jumpTablePos;60extern int32 jumpTableOffset;6162extern int32 jumpTableStackPos;63extern int32 functionStackPos;6465extern ScriptEngine scriptEng;66extern char scriptText[0x100];6768extern int32 aliasCount;69extern int32 lineID;7071#if LEGACY_RETRO_USE_COMPILER7273void CheckAliasText(char *text);74void ConvertArithmaticSyntax(char *text);75void ConvertIfWhileStatement(char *text);76bool32 ConvertSwitchStatement(char *text);77void ConvertFunctionText(char *text);78void CheckCaseNumber(char *text);79bool32 ReadSwitchCase(char *text);80void AppendIntegerToString(char *text, int32 value);81void CopyAliasStr(char *dest, char *text, bool32 arrayIndex);82bool32 CheckOpcodeType(char *text); // Never actually used8384void ParseScriptFile(char *scriptName, int32 scriptID);85#endif8687void LoadBytecode(int32 scriptID, bool32 globalCode);8889void ProcessScript(int32 scriptCodeStart, int32 jumpTableStart, uint8 scriptSub);9091void ClearScriptData();9293} // namespace v39495} // namespace Legacy9697