use proper function pointer in sub_0807DDAC

This commit is contained in:
Henny022p 2021-02-19 05:43:57 +01:00
parent b404b02bc2
commit 2fda11f20c
21 changed files with 30 additions and 48 deletions

View File

@ -86,13 +86,13 @@ extern void sub_0806F69C(Entity*);
extern void sub_0805E3A0(void*, u32);
extern void sub_0806D0B0(Entity*);
extern void sub_0807DD64(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDAC(Entity*, void(*function)(Entity*, ScriptExecutionContext*));
extern void sub_0807DDE4(Entity*);
extern void sub_0806D02C(Entity*);
extern u32 sub_0806F5A4(u32);
extern void sub_08078784(Entity*, u32);
extern void sub_0807DD50(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_0807DD94(Entity*, void(*function)(Entity*, ScriptExecutionContext*));
extern s32 sub_0806ED9C(Entity*, u32, u32);
extern void sub_0807000C(Entity*);
extern void sub_0805E47C(Entity*);
@ -106,7 +106,6 @@ extern void sub_0806FD3C(Entity*);
extern u32 sub_0801E99C(Entity*);
extern void sub_0807DD50(Entity*);
extern void sub_0806F118(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_0805ED14(u32*);
extern void sub_080A7C18(u32, u32, u32);
extern void sub_08068BEC(Entity*, u32);

View File

@ -418,21 +418,20 @@ void sub_0807DD80(Entity* entity, u32 unk1) {
sub_0807DD64(entity);
}
void sub_0807DD94(Entity* entity, u32 param_2) {
sub_0807DDAC(entity, param_2);
void sub_0807DD94(Entity* entity, void(*function)(Entity*, ScriptExecutionContext*)) {
sub_0807DDAC(entity, function);
sub_0807DDE4(entity);
sub_0807DE80(entity);
}
// TODO: make this a proper function pointer
void sub_0807DDAC(Entity* entity, u32 address) {
void sub_0807DDAC(Entity* entity, void(*function)(Entity*, ScriptExecutionContext*)) {
ScriptExecutionContext** piVar1;
piVar1 = (ScriptExecutionContext**)&entity->cutsceneBeh;
if (*piVar1) {
ExecuteScriptCommandSet(entity, *piVar1);
if (address) {
_call_via_r6(entity, *piVar1);
if (function) {
function(entity, *piVar1);
} else {
sub_0807DB98(entity, *piVar1);
}

View File

@ -108,7 +108,7 @@ void sub_08063410(Entity* this) {
if (this->entityType.form != 0) {
sub_0806346C(this);
}
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
GetNextFrame(this);
}

View File

@ -9,7 +9,6 @@ extern void (*gUnk_081140D4[])(Entity*);
extern u16 gUnk_081140CC[];
extern void sub_0806D0B0(Entity*);
extern void sub_0807DD64(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void PlaySFX(u32);
extern void sub_0806D02C(Entity*);
@ -28,7 +27,7 @@ void sub_0806CF30(Entity* this) {
sub_0806D0B0(this);
sub_0807DD64(this);
} else {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
}

View File

@ -10,7 +10,6 @@
extern void sub_0807DD50(Entity*);
extern void sub_0806F118(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void sub_080600F0(Entity*);
extern s32 sub_0806EDD8(Entity*, u32, u32);
@ -51,7 +50,7 @@ void ForestMinish(Entity* this) {
this->interactType = 0;
sub_0806F118(this);
} else {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
if (this->frameDuration != 0xf0) {
sub_080600F0(this);

View File

@ -14,7 +14,6 @@ extern void sub_0807DD50(Entity*);
extern u32 sub_0806F5A4(u32);
extern void sub_0806F118(Entity*);
extern void sub_08078784(Entity*, u32);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void sub_08078850();
extern u32 gUnk_08113F44;
@ -43,7 +42,7 @@ void MayorHagen(Entity* this) {
sub_0806F118(this);
break;
}
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
UpdateAnimationSingleFrame(this);
break;

View File

@ -8,7 +8,6 @@ extern void sub_08068780(Entity*);
extern void sub_08078778(Entity*);
extern void sub_0807DD50(Entity*);
extern void sub_0806F118(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern u32 sub_080040A8(Entity*);
extern void EnqueueSFX(u32);
@ -82,7 +81,7 @@ void sub_08068780(Entity* this) {
this->interactType = 0;
sub_0806F118(this);
} else {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
GetNextFrame(this);
}

View File

@ -12,7 +12,6 @@ extern void sub_0807DD50(Entity*);
extern u32 GetFacingDirection(Entity*, Entity*);
extern u32 sub_0806F5A4(u32);
extern void sub_0806F118(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern u32 UpdateFuseInteraction(Entity*);
extern void sub_0807000C(Entity*);
extern u32 sub_0801E99C(Entity*);
@ -43,7 +42,7 @@ void Mutoh(Entity* this) {
InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 4);
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
break;
case 2:

View File

@ -77,7 +77,7 @@ void sub_0806B41C(Entity* this) {
sub_0801DFB4(this, tmp[0], tmp[1], tmp[2]);
gPlayerState.field_0x8b = 3;
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
break;
case 2:

View File

@ -22,7 +22,6 @@ extern void sub_0806F118(Entity*);
extern u32 sub_0806F5A4(u32);
extern u32 GetFacingDirection(Entity*, Entity*);
extern void sub_080606D8(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_080788E0(Entity*);
extern void EnqueueSFX(u32);
extern void sub_080606C0(Entity*);
@ -145,7 +144,7 @@ void sub_08060528(Entity* this) {
sub_080606D8(this);
InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)));
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
}
break;

View File

@ -2,11 +2,9 @@
#include "functions.h"
#include "entity.h"
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void PlaySFX(u32);
extern void sub_0806A8C8(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void (*gUnk_08112260[])(Entity*);
extern void (*gUnk_08112278[])(Entity*);
@ -21,7 +19,7 @@ void sub_0806a370(Entity* this) {
u8* pbVar1;
gUnk_08112278[this->action](this);
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
UpdateAnimationSingleFrame(this);
sub_0806ED78(this);
@ -47,5 +45,5 @@ void sub_0806A3D8(Entity* this) {
sub_0806A8C8(this);
uVar1 = StartCutscene(this, &gUnk_08012F0C);
*(u32*)&this->cutsceneBeh = (u32)uVar1;
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}

View File

@ -22,7 +22,7 @@ void Simon(Entity* this) {
this->action++;
sub_0807DD50(this);
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
}

View File

@ -12,8 +12,6 @@ extern void PlaySFX(u32);
extern void sub_0807000C(Entity*);
extern u32 sub_0801E99C(Entity*);
extern void sub_0807DD50(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern u32 UpdateFuseInteraction(Entity*);
extern u32 GetAnimationState(Entity*);
@ -118,7 +116,7 @@ void sub_08066178(Entity* this) {
}
void sub_080661B0(Entity* this) {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
void sub_080661BC(Entity* this) {
@ -131,12 +129,12 @@ void sub_080661BC(Entity* this) {
InitAnimationForceUpdate(this, this->field_0x80.HWORD);
}
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
}
void sub_08066200(Entity* this) {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
UpdateAnimationSingleFrame(this);
}

View File

@ -8,7 +8,6 @@ extern void sub_0805E47C(Entity*);
extern void sub_0805E584();
extern void sub_0807DD64();
extern void sub_08062CA4();
extern void sub_0807DDAC();
extern void sub_0807DDE4();
extern u32 CheckKinstoneFused();
@ -68,7 +67,7 @@ void sub_08062C7C(Entity* ent) {
}
void sub_08062CA4(Entity* ent) {
sub_0807DDAC(ent, 0);
sub_0807DDAC(ent, NULL);
sub_0807DDE4(ent);
GetNextFrame(ent);
}

View File

@ -77,7 +77,7 @@ void sub_08065648(Entity* this) {
this->interactType = 0;
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
}
@ -118,7 +118,7 @@ void sub_080656D4(Entity* this) {
}
} else {
label2:
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
}
}

View File

@ -9,7 +9,6 @@ extern void sub_0807DD50(Entity*);
extern u32 GetFacingDirection(Entity*, Entity*);
extern u32 sub_0806F5A4(u32);
extern void sub_0806F118(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_08078784(Entity*, u32);
extern u32 UpdateFuseInteraction(Entity*);
extern void sub_0807000C(Entity*);
@ -37,7 +36,7 @@ void Teachers(Entity* this) {
(this->animIndex & -4) + sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)));
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
}
break;
case 2:

View File

@ -111,7 +111,7 @@ void sub_0806ACC4(Entity* this) {
this->interactType = 0;
sub_0806F118(this);
} else {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0806AEA8(this);
if (this->entityType.parameter == 10 && this->interactType) {
this->action = 2;

View File

@ -30,7 +30,6 @@ extern void sub_08061D64(Entity*);
extern void sub_0806F118(Entity*);
extern u32 sub_0806F5A4(u32);
extern u32 GetFacingDirection(Entity*, Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void sub_08062048(Entity*);
extern void sub_08078784(Entity*, u32);
@ -144,7 +143,7 @@ void sub_08061D64(Entity* this) {
this->field_0x68.HALF.HI = this->animIndex;
InitializeAnimation(this, (this->animIndex & -4) + sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)));
} else {
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
if (this->frameDuration == 0xff) {
this->frameDuration = gUnk_0810B680[this->entityType.form].unk2;

View File

@ -11,7 +11,6 @@ extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*);
extern void sub_0807DD50(Entity*);
extern void sub_0806C7D4(Entity*);
extern void sub_0806F118(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void sub_0807DD80(Entity*, u32*);
extern u32 sub_0801E99C();
extern void sub_08078784(Entity*, u32);
@ -54,7 +53,7 @@ void sub_0806C7D4(Entity* this) {
this->interactType = '\0';
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
sub_0807DD94(this, NULL);
if ((this->entityType.parameter == 3) && (!CheckGlobalFlag(WARP_EVENT_END)) && (CheckLocalFlag(0x63)) &&
(CheckRoomFlag(0))) {
(this->entityType).parameter = 7;

View File

@ -6,7 +6,6 @@
extern void PrependEntityToList(Entity*, u32);
extern void sub_0807DD50(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern Entity* FindEntityBySubtype(u32, u32);
void CopyPosition(Entity*, Entity*);
void sub_08068680(Entity*, Entity*);
@ -37,7 +36,7 @@ void sub_08066CCC(Entity* ent) {
}
void sub_08066CF8(Entity* ent) {
sub_0807DD94(ent, 0);
sub_0807DD94(ent, NULL);
}
void sub_08066D04(Entity* ent) {

View File

@ -4,7 +4,6 @@
#include "save.h"
extern void sub_0807DD64(Entity*);
extern void sub_0807DDAC(Entity*, u32);
extern void sub_0807DDE4(Entity*);
extern void sub_08078850(Entity*, u32, u32, u8*);
extern void PlaySFX(u32);
@ -18,7 +17,7 @@ void Windcrest(Entity* this) {
this->frameIndex = 0;
sub_0807DD64(this);
}
sub_0807DDAC(this, 0);
sub_0807DDAC(this, NULL);
sub_0807DDE4(this);
}