summaryrefslogtreecommitdiff
path: root/include/script.h
diff options
context:
space:
mode:
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