From aaea9b89f6916be97e39920a57ad589e9a412a6b Mon Sep 17 00:00:00 2001 From: Henny022p Date: Fri, 19 Feb 2021 06:31:07 +0100 Subject: [PATCH] improved signature of StartCutscene --- include/functions.h | 2 +- src/code_0807CC3C.c | 20 ++++++++++---------- src/npc/forestMinish.c | 2 +- src/npc/rem.c | 4 ++-- src/npc/talon.c | 2 +- src/object/houseDoorExterior.c | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/functions.h b/include/functions.h index d53ca901..7015294b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -24,7 +24,7 @@ extern u32 CheckKinstoneFused(u32); extern void ForceEquipItem(u8, u8); extern void LoadRoomEntityList(); void CopyPosition(Entity*, Entity*); -extern u32* StartCutscene(Entity*, u8*); +extern ScriptExecutionContext* StartCutscene(Entity*, u16*); extern void ResolveEntityOnTop(Entity*, Entity*); extern void EnemyFunctionHandler(Entity*, void (*const funcs[])(Entity*)); extern u32 GetAnimationState(Entity*); diff --git a/src/code_0807CC3C.c b/src/code_0807CC3C.c index c88fb1d9..2e56b920 100644 --- a/src/code_0807CC3C.c +++ b/src/code_0807CC3C.c @@ -27,8 +27,8 @@ extern s32 __divsi3(s32, s32); extern void _call_via_r6(Entity*, ScriptExecutionContext*); extern u16 sub_080B18DC(u16, const char*); -void sub_0807DB88(ScriptExecutionContext* context, u32 unk1); -void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u32 unk1); +void sub_0807DB88(ScriptExecutionContext* context, u16* unk1); +void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* unk1); u32 sub_0807D1D8(u32 unk_1, const char* unk_2, u32 unk_3); u32 sub_0807D128(const Thing* unk_1); u16 sub_0807D1A4(u16* unk_1, u32 unk_2); @@ -248,7 +248,7 @@ NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u3 END_NONMATCH void sub_0807DA70(void) { - _DmaZero(&gUnk_02033280, 0xc); + _DmaZero(&gUnk_02033280, sizeof(gUnk_02033280)); _DmaZero(&gScriptExecutionContextArray, sizeof(gScriptExecutionContextArray)); _DmaZero(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); gUnk_02033280.unk_08 = 8; @@ -271,17 +271,17 @@ void DestroyScriptExecutionContext(ScriptExecutionContext* context) { _DmaZero(context, sizeof(ScriptExecutionContext)); } -u32* StartCutscene(Entity* entity, u8* param_2) { +ScriptExecutionContext* StartCutscene(Entity* entity, u16* unk_2) { ScriptExecutionContext* puVar1; puVar1 = CreateScriptExecutionContext(); if (puVar1) { - sub_0807DAF0(entity, puVar1, (u32)param_2); + sub_0807DAF0(entity, puVar1, unk_2); } - return (u32*)puVar1; + return puVar1; } -void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u32 unk1) { +void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* unk1) { entity->flags = entity->flags | 2; *(ScriptExecutionContext**)&entity->cutsceneBeh = context; sub_0807DB88(context, unk1); @@ -320,9 +320,9 @@ ScriptExecutionContext* sub_0807DB68(Entity* entity, u16* unk1) { return context; } -void sub_0807DB88(ScriptExecutionContext* context, u32 unk1) { +void sub_0807DB88(ScriptExecutionContext* context, u16* unk1) { _DmaZero(context, sizeof(ScriptExecutionContext)); - context->unk_00 = (u16*)unk1; + context->unk_00 = unk1; } void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) { @@ -411,7 +411,7 @@ void sub_0807DD64(Entity* entity) { entity->field_0x82.HWORD = 0; } -void sub_0807DD80(Entity* entity, u32 unk1) { +void sub_0807DD80(Entity* entity, u16* unk1) { sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, unk1); sub_0807DD64(entity); } diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 3bdc6170..71c84161 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -40,7 +40,7 @@ void ForestMinish(Entity* this) { this->field_0x68.HALF.HI = this->animationState = this->actionDelay << 1; this->actionDelay = 0; sub_0805E3A0(this, 2); - StartCutscene(this, gUnk_08109D18[this->entityType.parameter]); + StartCutscene(this, (u16*)gUnk_08109D18[this->entityType.parameter]); sub_0807DD50(this); } break; diff --git a/src/npc/rem.c b/src/npc/rem.c index 22d13c31..b1233acf 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -37,13 +37,13 @@ void sub_0806a370(Entity* this) { } void sub_0806A3D8(Entity* this) { - u32* uVar1; + ScriptExecutionContext* uVar1; this->action = 1; this->actionDelay = 0xb4; sub_0805E3A0(this, 2); sub_0806A8C8(this); uVar1 = StartCutscene(this, &gUnk_08012F0C); - *(u32*)&this->cutsceneBeh = (u32)uVar1; + *(ScriptExecutionContext**)&this->cutsceneBeh = uVar1; sub_0807DD94(this, NULL); } diff --git a/src/npc/talon.c b/src/npc/talon.c index 302321de..867ede74 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -106,7 +106,7 @@ void sub_080656D4(Entity* this) { } else { if (this->interactType != 0) { if (GetInventoryValue(0x37) != 0) { // keyLonLon - StartCutscene(this, &gUnk_0800B41C); + StartCutscene(this, (u16*)&gUnk_0800B41C); goto label2; } else { this->field_0x68.HALF.HI = this->action; diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 170f6e33..3c43e4b1 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -64,7 +64,7 @@ void sub_080866D8(Entity* this) { UpdateSpriteForCollisionLayer(entity); *((u32*)(&this->field_0x68)) |= mask; if (prop->unk8) { - *((u32**)(&entity->cutsceneBeh)) = StartCutscene(entity, prop->unk8); + *((ScriptExecutionContext **)(&entity->cutsceneBeh)) = StartCutscene(entity, (u16*)prop->unk8); } } }