summaryrefslogtreecommitdiff
path: root/include/script.h
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-09-19 23:49:22 -0700
committerYamaArashi <shadow962@live.com>2016-09-19 23:49:22 -0700
commit0b2a61e5d84e8a9950004c8d76ad8556e334f6c4 (patch)
tree9c6c31de37ba0dbcee99b8093f07d127d1de81e6 /include/script.h
parent573fa4cd845aae6d95719812e0fa39de2ffb07a9 (diff)
WIP decompilation of script functions
Diffstat (limited to 'include/script.h')
-rw-r--r--include/script.h43
1 files changed, 43 insertions, 0 deletions
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