Path: blob/main/RSDKv4/Script.hpp
817 views
#ifndef SCRIPT_H1#define SCRIPT_H23#define SCRIPTCODE_COUNT (0x40000)4#define JUMPTABLE_COUNT (0x4000)5#define FUNCTION_COUNT (0x200)67#define JUMPSTACK_COUNT (0x400)8#define FUNCSTACK_COUNT (0x400)9#define FORSTACK_COUNT (0x400)1011#define RETRO_USE_COMPILER (1)1213struct ScriptPtr {14int scriptCodePtr;15int jumpTablePtr;16};1718struct ScriptFunction {1920byte access;21#if RETRO_USE_COMPILER22char name[0x20];23#endif24ScriptPtr ptr;25};2627struct ObjectScript {28int frameCount;29int spriteSheetID;30ScriptPtr eventUpdate;31ScriptPtr eventDraw;32ScriptPtr eventStartup;33int frameListOffset;34AnimationFile *animFile;35};3637struct ScriptEngine {38int operands[0x10];39int temp[8];40int arrayPosition[9];41int checkResult;42};4344enum ScriptSubs { EVENT_MAIN = 0, EVENT_DRAW = 1, EVENT_SETUP = 2 };4546extern ObjectScript objectScriptList[OBJECT_COUNT];47extern ScriptFunction scriptFunctionList[FUNCTION_COUNT];4849extern int scriptCode[SCRIPTCODE_COUNT];50extern int jumpTable[JUMPTABLE_COUNT];5152extern int jumpTableStack[JUMPSTACK_COUNT];53extern int functionStack[FUNCSTACK_COUNT];54extern int foreachStack[FORSTACK_COUNT];5556extern int scriptCodePos;57extern int scriptCodeOffset;58extern int jumpTablePos;59extern int jumpTableOffset;60extern int jumpTableStackPos;61extern int functionStackPos;62extern int foreachStackPos;6364extern ScriptEngine scriptEng;65extern char scriptText[0x4000];6667bool ConvertStringToInteger(const char *text, int *value);6869#if RETRO_USE_COMPILER70extern int scriptFunctionCount;71extern char scriptFunctionNames[FUNCTION_COUNT][0x40];7273extern int lineID;7475void CheckAliasText(char *text);76void CheckStaticText(char *text);77bool CheckTableText(char *text);78void ConvertArithmaticSyntax(char *text);79void ConvertConditionalStatement(char *text);80bool ConvertSwitchStatement(char *text);81void ConvertFunctionText(char *text);82void CheckCaseNumber(char *text);83bool ReadSwitchCase(char *text);84void ReadTableValues(char *text);85void AppendIntegerToString(char *text, int value);86void AppendIntegerToStringW(ushort *text, int value);87void CopyAliasStr(char *dest, char *text, bool arrayIndex);88bool CheckOpcodeType(char *text); // Never actually used8990void ParseScriptFile(char *scriptName, int scriptID);91#endif92void LoadBytecode(int stageListID, int scriptID);9394void ProcessScript(int scriptCodeStart, int jumpTableStart, byte scriptEvent);9596void ClearScriptData(void);9798#endif // !SCRIPT_H99100