diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-07 19:45:32 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-07 19:45:32 +0200 |
commit | 4a1b2967caf329541ce7a166d3b3aea126966c22 (patch) | |
tree | 3cbb367900e161cd42c1c27dc9a367ca03aa8e66 /include/script.h | |
parent | 8bfdc42d0ee8d0eae7108fd4c68accfd4649f3a0 (diff) |
make lots of define files
Diffstat (limited to 'include/script.h')
-rw-r--r-- | include/script.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/include/script.h b/include/script.h new file mode 100644 index 000000000..2a738698c --- /dev/null +++ b/include/script.h @@ -0,0 +1,59 @@ +#ifndef GUARD_SCRIPT_H +#define GUARD_SCRIPT_H + +struct ScriptContext; + +typedef bool8 (*ScrCmdFunc)(struct ScriptContext *); +typedef u8 Script[]; + +struct ScriptContext +{ + u8 stackDepth; + u8 mode; + u8 comparisonResult; + u8 (*nativePtr)(void); + const u8 *scriptPtr; + const u8 *stack[20]; + ScrCmdFunc *cmdTable; + ScrCmdFunc *cmdTableEnd; + u32 data[4]; +}; + +#define ScriptReadByte(ctx) (*(ctx->scriptPtr++)) + +void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd); +u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); +void SetupNativeScript(struct ScriptContext *ctx, void *ptr); +void StopScript(struct ScriptContext *ctx); +u8 RunScriptCommand(struct ScriptContext *ctx); +u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); +const u8 *ScriptPop(struct ScriptContext *ctx); +void ScriptJump(struct ScriptContext *ctx, u8 *ptr); +void ScriptCall(struct ScriptContext *ctx, u8 *ptr); +void ScriptReturn(struct ScriptContext *ctx); +u16 ScriptReadHalfword(struct ScriptContext *ctx); +u32 ScriptReadWord(struct ScriptContext *ctx); +void ScriptContext2_Enable(void); +void ScriptContext2_Disable(void); +bool8 ScriptContext2_IsEnabled(void); +void ScriptContext1_Init(void); +bool8 ScriptContext2_RunScript(void); +void ScriptContext1_SetupScript(const u8 *ptr); +void ScriptContext1_Stop(void); +void EnableBothScriptContexts(void); +void ScriptContext2_RunNewScript(const u8 *ptr); +u8 *mapheader_get_tagged_pointer(u8 tag); +void mapheader_run_script_by_tag(u8 tag); +u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); +void mapheader_run_script_with_tag_x1(void); +void mapheader_run_script_with_tag_x3(void); +void mapheader_run_script_with_tag_x5(void); +void mapheader_run_script_with_tag_x6(void); +bool8 mapheader_run_first_tag2_script_list_match(void); +void mapheader_run_first_tag4_script_list_match(void); +u32 CalculateRamScriptChecksum(void); +void ClearRamScript(void); +bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); +u8 *GetRamScript(u8 objectId, u8 *script); + +#endif // GUARD_SCRIPT_H |