From 0b2a61e5d84e8a9950004c8d76ad8556e334f6c4 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Mon, 19 Sep 2016 23:49:22 -0700 Subject: WIP decompilation of script functions --- include/script.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 include/script.h (limited to 'include/script.h') diff --git a/include/script.h b/include/script.h new file mode 100644 index 000000000..d38d176f1 --- /dev/null +++ b/include/script.h @@ -0,0 +1,43 @@ +#ifndef GUARD_SCRIPT_H +#define GUARD_SCRIPT_H + +struct ScriptContext; + +typedef bool8 (*ScrCmdFunc)(struct ScriptContext *); + +struct ScriptContext +{ + u8 stackDepth; + u8 mode; + u8 comparisonResult; + u8 (*nativePtr)(void); + u8 *scriptPtr; + u8 *stack[20]; + ScrCmdFunc *cmdTable; + ScrCmdFunc *cmdTableEnd; + u32 data[4]; +}; + +void script_env_init(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd); +u8 script_setup_bytecode_script(struct ScriptContext *ctx, void *ptr); +void script_setup_asm_script(struct ScriptContext *ctx, void *ptr); +void script_stop(struct ScriptContext *ctx); +u8 sub_80653EC(struct ScriptContext *ctx); +u8 script_stack_push(struct ScriptContext *ctx, u8 *ptr); +u8 *script_stack_pop(struct ScriptContext *ctx); +void script_jump(struct ScriptContext *ctx, u8 *ptr); +void script_call(struct ScriptContext *ctx, u8 *ptr); +void script_return(struct ScriptContext *ctx); +u16 script_read_halfword(struct ScriptContext *ctx); +u32 script_read_word(struct ScriptContext *ctx); +void script_env_2_enable(void); +void script_env_2_disable(void); +bool8 script_env_2_is_enabled(void); +void script_env_1_init(void); +bool8 script_env_2_run_current_script(void); +void script_env_1_execute_new_script(u8 *ptr); +void sub_80655F0(void); +void script_env_2_enable_and_set_ctx_running(); +void script_env_2_execute_new_script(u8 *ptr); + +#endif // GUARD_SCRIPT_H -- cgit v1.2.3