diff options
| author | Tal Hayon <talhayon1@gmail.com> | 2022-08-07 00:17:12 +0300 |
|---|---|---|
| committer | Tal Hayon <talhayon1@gmail.com> | 2022-08-07 00:17:12 +0300 |
| commit | 807d313e10be369240a1309f7ffe63c143f87287 (patch) | |
| tree | 215cd631c2b5ba01a594f2b65ea5c35984bc1e04 /src | |
| parent | 18ef0d34b4ce9801ae26449e3a32ac9d985e43de (diff) | |
Put some const data in npcUtils
Diffstat (limited to 'src')
| -rw-r--r-- | src/npcUtils.c | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/src/npcUtils.c b/src/npcUtils.c index 9e7fb73e..cf041a0d 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -6,13 +6,10 @@ #include "save.h" #include "npc.h" #include "kinstone.h" +#include "hitbox.h" extern const NPCDefinition gNPCDefinitions[]; -extern Hitbox* gNPCHitboxes[]; -extern u32 (*gUnk_08114EFC[])(Entity*); -extern u32 (*gUnk_08114F0C[])(Entity*, u8*); - typedef struct { u16 textIndex; u16 _2; @@ -21,6 +18,18 @@ typedef struct { extern NPCData* gUnk_08001A7C[]; u32 sub_0806EF88(Entity*); +u32 sub_0806EE70(Entity*); +u32 sub_0806EED0(Entity*); +u32 sub_0806EEF4(Entity*); +u32 sub_0806EFAC(Entity*, u16*); +u32 sub_0806EFBC(Entity*, u16*); +u32 sub_0806EFCC(Entity*, u16*); +u32 sub_0806EFDC(Entity*, u16*); +u32 sub_0806F014(Entity*, u16*); +u32 sub_0806F02C(Entity*, u16*); +u32 sub_0806F048(Entity*, u16*); +u32 sub_0806F050(Entity*, u16*); +u32 sub_0806F064(Entity*, u16*); static void sub_0806EF14(Entity*); static void sub_0806EF4C(Entity*, u16*); @@ -48,6 +57,14 @@ static const NPCDefinition* GetNPCDefinition(Entity* this) { } void NPCInit(Entity* this) { + static const Hitbox* const gNPCHitboxes[] = { + NULL, + &gHitbox_2, + &gHitbox_30, + &gHitbox_2, + &gHitbox_3, + &gHitbox_31, + }; u32 tmp; u32 tmp2; @@ -75,7 +92,7 @@ void NPCInit(Entity* this) { this->spriteSettings.shadow = definition->data.sprite.shadow; this->spritePriority.b1 = definition->data.sprite.spritePriority; this->spriteSettings.draw = definition->data.sprite.draw; - this->hitbox = gNPCHitboxes[definition->bitfield.hitbox]; + this->hitbox = (Hitbox*) gNPCHitboxes[definition->bitfield.hitbox]; this->flags |= ENT_DID_INIT; tmp2 = 0xff; this->animIndex = tmp2; @@ -135,6 +152,12 @@ void sub_0806EE04(Entity* ent, void* a2, u32 a3) { } u32 sub_0806EE20(Entity* ent) { + static u32 (*const gUnk_08114EFC[])(Entity*) = { + sub_0806EF88, + sub_0806EE70, + sub_0806EED0, + sub_0806EEF4, + }; u32 v3; if (!ent->interactType) { @@ -203,8 +226,19 @@ static u32 sub_0806EF74(Entity* ent, u32 a2) { } u32 sub_0806EF88(Entity* ent) { + static u32 (*const gUnk_08114F0C[])(Entity*, u16*) = { + sub_0806EFAC, + sub_0806EFBC, + sub_0806EFCC, + sub_0806EFDC, + sub_0806F014, + sub_0806F02C, + sub_0806F048, + sub_0806F050, + sub_0806F064, + }; u8* v1 = (u8*)&((u16*)ent->child)[ent->hitType]; - return gUnk_08114F0C[*v1](ent, v1); + return gUnk_08114F0C[*v1](ent, (u16*)v1); } u32 sub_0806EFAC(Entity* ent, u16* a2) { |
