diff options
| author | MegaIDK <125525714+MegaIDK@users.noreply.github.com> | 2023-09-02 13:29:30 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-02 09:29:30 -0700 |
| commit | 61cf267a89bebd588ef68d37d00ca3ca93838293 (patch) | |
| tree | f4f6be0cb9724c084f94a3daf424acaf4730ba89 | |
| parent | c6f75799390c185e5a06cedd7c7296e735b22c81 (diff) | |
ovl_Kamakura_Npc0 OK (#82)
* ovl_Kamakura_Npc0 OK
* fixed warnings
* fun names
* suggestions
* removed useless variable
* change back from bool to s32
* forgor protopye
| -rw-r--r-- | include/m_common_data.h | 59 | ||||
| -rw-r--r-- | include/unknown_structs.h | 12 | ||||
| -rw-r--r-- | src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c | 58 | ||||
| -rw-r--r-- | src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c | 17 | ||||
| -rw-r--r-- | yamls/jp/overlays.yaml | 2 |
5 files changed, 99 insertions, 49 deletions
diff --git a/include/m_common_data.h b/include/m_common_data.h index c9c6bb7..20ffd95 100644 --- a/include/m_common_data.h +++ b/include/m_common_data.h @@ -43,27 +43,42 @@ typedef UNK_RET (*CommonData_unk_1004C_unk_EC)(struct Game_Play_unk_0110*, s16, typedef UNK_RET (*CommonData_unk_1004C_unk_F0)(struct Game_Play_unk_0110*, struct Actor*); typedef s32 (*CommonData_unk_1004C_unk_F4)(struct Game_Play_unk_0110*, struct Actor*); +typedef UNK_RET (*CommonData_unk_1004C_unk_118)(struct Actor*); + typedef struct CommonData_unk_1004C { - /* 0x00 */ UNK_TYPE1 unk_00[0x4]; - /* 0x04 */ CommonData_unk_1004C_unk_04 unk_04; - /* 0x08 */ CommonData_unk_1004C_unk_08 unk_08; - /* 0x0C */ CommonData_unk_1004C_unk_0C unk_0C; - /* 0x10 */ CommonData_unk_1004C_unk_10 unk_10; - /* 0x14 */ CommonData_unk_1004C_unk_14 unk_14; - /* 0x18 */ UNK_TYPE1 unk_18[0xA4]; - /* 0xBC */ CommonData_unk_1004C_unk_BC unk_BC; - /* 0xC0 */ CommonData_unk_1004C_unk_C0 unk_C0; - /* 0xC4 */ CommonData_unk_1004C_unk_C4 unk_C4; - /* 0xC8 */ CommonData_unk_1004C_unk_C8 unk_C8; - /* 0xCC */ CommonData_unk_1004C_unk_CC unk_CC; - /* 0xD0 */ CommonData_unk_1004C_unk_D0 unk_D0; - /* 0xD4 */ UNK_TYPE1 unk_D4[0x10]; - /* 0xE4 */ CommonData_unk_1004C_unk_E4 unk_E4; - /* 0xE8 */ UNK_TYPE1 unk_E8[0x4]; - /* 0xEC */ CommonData_unk_1004C_unk_EC unk_EC; - /* 0xF0 */ CommonData_unk_1004C_unk_F0 unk_F0; - /* 0xF4 */ CommonData_unk_1004C_unk_F4 unk_F4; -} CommonData_unk_1004C; // size >= 0xF8 + /* 0x000 */ UNK_TYPE1 unk_00[0x4]; + /* 0x004 */ CommonData_unk_1004C_unk_04 unk_04; + /* 0x008 */ CommonData_unk_1004C_unk_08 unk_08; + /* 0x00C */ CommonData_unk_1004C_unk_0C unk_0C; + /* 0x010 */ CommonData_unk_1004C_unk_10 unk_10; + /* 0x014 */ CommonData_unk_1004C_unk_14 unk_14; + /* 0x018 */ UNK_TYPE1 unk_18[0xA4]; + /* 0x0BC */ CommonData_unk_1004C_unk_BC unk_BC; + /* 0x0C0 */ CommonData_unk_1004C_unk_C0 unk_C0; + /* 0x0C4 */ CommonData_unk_1004C_unk_C4 unk_C4; + /* 0x0C8 */ CommonData_unk_1004C_unk_C8 unk_C8; + /* 0x0CC */ CommonData_unk_1004C_unk_CC unk_CC; + /* 0x0D0 */ CommonData_unk_1004C_unk_D0 unk_D0; + /* 0x0D4 */ UNK_TYPE1 unk_D4[0x10]; + /* 0x0E4 */ CommonData_unk_1004C_unk_E4 unk_E4; + /* 0x0E8 */ UNK_TYPE1 unk_E8[0x4]; + /* 0x0EC */ CommonData_unk_1004C_unk_EC unk_EC; + /* 0x0F0 */ CommonData_unk_1004C_unk_F0 unk_F0; + /* 0x0F4 */ CommonData_unk_1004C_unk_F4 unk_F4; + /* 0x0F8 */ UNK_TYPE1 unk_F8[0x20]; + /* 0x118 */ CommonData_unk_1004C_unk_118 unk_118; +} CommonData_unk_1004C; // size >= 0x11C + +typedef UNK_RET (*CommonData_unk_10078_unk_00)(UNK_TYPE); +typedef UNK_RET (*CommonData_unk_10078_unk_04)(UNK_TYPE); +typedef UNK_RET (*CommonData_unk_10078_unk_08)(UNK_TYPE); + + +typedef struct CommonData_unk_10078 { + /* 0x00 */ CommonData_unk_10078_unk_00 unk_00; + /* 0x04 */ CommonData_unk_10078_unk_04 unk_04; + /* 0x08 */ CommonData_unk_10078_unk_08 unk_08; +} CommonData_unk_10078; // size >= 0xC typedef UNK_RET (*CommonData_unk_10098_unk_4)(struct ActorOverlay*, size_t); typedef UNK_RET (*CommonData_unk_10098_unk_8)(void); @@ -161,7 +176,9 @@ typedef struct CommonData { /* 0x10004 */ s32 unk_10004; // named "last_scene_no" in AC GCN decomp /* 0x10008 */ UNK_TYPE1 unk_10008[0x44]; /* 0x1004C */ CommonData_unk_1004C *unk_1004C; - /* 0x10050 */ UNK_TYPE1 unk_10050[0x48]; + /* 0x10050 */ UNK_TYPE1 unk_10050[0x28]; + /* 0x10078 */ CommonData_unk_10078 *unk_10078; + /* 0x1007C */ UNK_TYPE1 unk_1007C[0x1C]; /* 0x10098 */ CommonData_unk_10098 *unk_10098; /* 0x1009C */ UNK_TYPE1 unk_1009C[0x48]; /* 0x100E4 */ CommonData_100E4_Func* unk_100E4; diff --git a/include/unknown_structs.h b/include/unknown_structs.h index 37c8a3d..3249db9 100644 --- a/include/unknown_structs.h +++ b/include/unknown_structs.h @@ -34,10 +34,12 @@ typedef struct Game_Play_unk_0110 { } Game_Play_unk_0110; // size = 0x54 typedef struct struct_809AEFA4 { - /* 0x0 */ UNK_PTR unk_0; - /* 0x0 */ UNK_PTR unk_4; - /* 0x0 */ UNK_TYPE unk_8; - /* 0x0 */ UNK_TYPE unk_C; -} struct_809AEFA4; // size >= 0x10 + /* 0x00 */ UNK_PTR unk_0; + /* 0x04 */ UNK_PTR unk_4; + /* 0x08 */ UNK_TYPE unk_8; + /* 0x0C */ UNK_PTR unk_C; + /* 0x10 */ UNK_PTR unk_10; + /* 0x14 */ UNK_PTR unk_14; +} struct_809AEFA4; // size >= 0x18 #endif diff --git a/src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c b/src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c index 47eab0a..5de6bfb 100644 --- a/src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c +++ b/src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c @@ -8,8 +8,12 @@ void aKM0_actor_ct(Actor* thisx, Game_Play* game_play); void aKM0_actor_dt(Actor* thisx, Game_Play* game_play); void aKM0_actor_init(Actor* thisx, Game_Play* game_play); void aKM0_actor_save(Actor* thisx, Game_Play* game_play); +void aKM0_talk_request(UNK_TYPE arg0, UNK_TYPE arg1); +void aKM0_talk_init(UNK_TYPE arg0, UNK_TYPE arg1); +s32 aKM0_talk_end_chk(UNK_TYPE arg0, UNK_TYPE arg1); +void aKM0_actor_move(void); +void aKM0_actor_draw(void); -#if 0 ActorProfile Kamakura_Npc0_Profile = { /* */ ACTOR_KAMAKURA_NPC0, /* */ ACTOR_PART_NPC, @@ -20,25 +24,55 @@ ActorProfile Kamakura_Npc0_Profile = { /* */ aKM0_actor_ct, /* */ aKM0_actor_dt, /* */ aKM0_actor_init, - /* */ (ActorFunc)none_proc1, + /* */ (void*)none_proc1, /* */ aKM0_actor_save, }; -#endif -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/aKM0_actor_ct.s") +struct_809AEFA4 aKM0_ct_data = { + aKM0_actor_move, aKM0_actor_draw, 3, aKM0_talk_request, aKM0_talk_init, aKM0_talk_end_chk, +}; + +void aKM0_actor_ct(Actor* thisx, Game_Play* game_play) { + if (common_data.unk_1004C->unk_BC(thisx, game_play) == 1) { + common_data.unk_1004C->unk_C0(thisx, game_play, &aKM0_ct_data); + common_data.unk_1004C->unk_118(thisx); + } +} + +void aKM0_actor_save(Actor* thisx, Game_Play* game_play) { + common_data.unk_1004C->unk_C8(thisx, game_play); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/aKM0_actor_save.s") +void aKM0_actor_dt(Actor* thisx, Game_Play* game_play) { + common_data.unk_1004C->unk_C4(thisx, game_play); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/aKM0_actor_dt.s") +void aKM0_actor_init(Actor* thisx, Game_Play* game_play) { + common_data.unk_1004C->unk_CC(thisx, game_play); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/aKM0_actor_init.s") +void aKM0_talk_request(UNK_TYPE arg0, UNK_TYPE arg1 UNUSED) { + common_data.unk_10078->unk_00(arg0); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/func_809DF884_jp.s") +void aKM0_talk_init(UNK_TYPE arg0, UNK_TYPE arg1 UNUSED) { + common_data.unk_10078->unk_04(arg0); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/func_809DF8B4_jp.s") +s32 aKM0_talk_end_chk(UNK_TYPE arg0, UNK_TYPE arg1 UNUSED) { + s32 var_v1; -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/func_809DF8E4_jp.s") + var_v1 = false; + if (common_data.unk_10078->unk_08(arg0) == 1) { + var_v1 = true; + } + return var_v1; +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/func_809DF92C_jp.s") +void aKM0_actor_move(void) { + common_data.unk_1004C->unk_D0(); +} -#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0/func_809DF958_jp.s") +void aKM0_actor_draw(void) { + common_data.unk_1004C->unk_E4(); +} diff --git a/src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c b/src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c index ac8e35c..211b680 100644 --- a/src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c +++ b/src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c @@ -9,8 +9,8 @@ void aNEG_actor_ct(Actor* thisx, Game_Play* game_play); void aNEG_actor_dt(Actor* thisx, Game_Play* game_play); void aNEG_actor_init(Actor* thisx, Game_Play* game_play); void aNEG_actor_save(Actor* thisx, Game_Play* game_play); -void func_809AEF28_jp(void); -void func_809AEF54_jp(void); +void aNEG_actor_move(void); +void aNEG_actor_draw(void); ActorProfile Npc_Engineer_Profile = { /* */ ACTOR_NPC_ENGINEER, @@ -26,11 +26,8 @@ ActorProfile Npc_Engineer_Profile = { /* */ aNEG_actor_save, }; -struct_809AEFA4 D_809AEFA4_jp = { - func_809AEF28_jp, - func_809AEF54_jp, - 4, - 0, +struct_809AEFA4 aNEG_ct_data = { + aNEG_actor_move, aNEG_actor_draw, 4, NULL, NULL, NULL, }; void aNEG_actor_ct(Actor* thisx, Game_Play* game_play) { @@ -38,7 +35,7 @@ void aNEG_actor_ct(Actor* thisx, Game_Play* game_play) { if (common_data.unk_1004C->unk_BC(thisx, game_play) == 1) { this->unk7C0 = none_proc1; - common_data.unk_1004C->unk_C0(thisx, game_play, &D_809AEFA4_jp); + common_data.unk_1004C->unk_C0(thisx, game_play, &aNEG_ct_data); this->unk80C = -1; this->unk7FD = 0; this->unk8AC = -1; @@ -64,10 +61,10 @@ void aNEG_actor_init(Actor* thisx, Game_Play* game_play) { common_data.unk_1004C->unk_CC(thisx, game_play); } -void func_809AEF28_jp(void) { +void aNEG_actor_move(void) { common_data.unk_1004C->unk_D0(); } -void func_809AEF54_jp(void) { +void aNEG_actor_draw(void) { common_data.unk_1004C->unk_E4(); } diff --git a/yamls/jp/overlays.yaml b/yamls/jp/overlays.yaml index 9ad0431..57ac255 100644 --- a/yamls/jp/overlays.yaml +++ b/yamls/jp/overlays.yaml @@ -2669,7 +2669,7 @@ bss_size: 0x0 subsegments: - [0x8C2F70, c, overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0] - - [0x8C3180, data, overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0] + - [0x8C3180, .data, overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0] - name: ovl_Kamakura_Npc0_reloc type: code start: 0x8C31C0 |
