mirror of https://github.com/zeldaret/tmc.git
use proper function pointer in sub_0807DDAC
This commit is contained in:
parent
b404b02bc2
commit
2fda11f20c
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ void Simon(Entity* this) {
|
|||
this->action++;
|
||||
sub_0807DD50(this);
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
sub_0807DD94(this, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue