diff options
Diffstat (limited to 'include/script.h')
| -rw-r--r-- | include/script.h | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/include/script.h b/include/script.h index 9abc5291..cfc2c180 100644 --- a/include/script.h +++ b/include/script.h @@ -3,34 +3,39 @@ #include "global.h" -typedef struct { - u16* unk_00; - u32 unk_04; - u32 unk_08; +typedef struct ScriptExecutionContext { + u16* scriptInstructionPointer; + u32 intVariable; + u32 postScriptActions; u8 unk_0C[0x4]; // unused - u16 unk_10; + u16 wait; u16 unk_12; - u32 unk_14; + u32 condition; u8 unk_18; u8 unk_19; u8 unk_1A; u8 unk_1B; // unused - union SplitWord unk_1C; - union SplitWord unk_20; + union SplitWord x; + union SplitWord y; } ScriptExecutionContext; -extern void ExecuteScriptCommandSet(Entity*, ScriptExecutionContext*); +void ExecuteScript(Entity* entity, ScriptExecutionContext* context); extern u32 GetNextScriptCommandHalfword(u16*); extern u32 GetNextScriptCommandWord(u16*); extern u32 GetNextScriptCommandWordAfterCommandMetadata(u16*); extern u32 GetNextScriptCommandHalfwordAfterCommandMetadata(u16*); -extern void StartPlayerScript(u16*); +void UnloadCutsceneData(Entity* entity); +void StartPlayerScript(u16*); -extern void sub_0807DEDC(Entity*, ScriptExecutionContext*, u32, u32); +void sub_0807DD50(Entity* entity); +void sub_0807DD64(Entity* entity); +void sub_0807DD80(Entity* entity, u16* script); +void sub_0807DEDC(Entity*, ScriptExecutionContext*, u32, u32); -extern ScriptExecutionContext* StartCutscene(Entity*, u16*); -extern void sub_0807DDAC(Entity*, void (*function)(Entity*, ScriptExecutionContext*)); -extern void sub_0807DD94(Entity*, void (*function)(Entity*, ScriptExecutionContext*)); +ScriptExecutionContext* StartCutscene(Entity* entity, u16* script); +void ExecuteScriptForEntity(Entity* entity, void (*postScriptCallback)(Entity*, ScriptExecutionContext*)); +void HandleEntity0x82Actions(Entity* entity); +void sub_0807DD94(Entity*, void (*function)(Entity*, ScriptExecutionContext*)); #endif |
