summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMegaIDK <125525714+MegaIDK@users.noreply.github.com>2023-09-02 13:29:30 -0300
committerGitHub <noreply@github.com>2023-09-02 09:29:30 -0700
commit61cf267a89bebd588ef68d37d00ca3ca93838293 (patch)
treef4f6be0cb9724c084f94a3daf424acaf4730ba89
parentc6f75799390c185e5a06cedd7c7296e735b22c81 (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.h59
-rw-r--r--include/unknown_structs.h12
-rw-r--r--src/overlays/actors/ovl_Kamakura_Npc0/ac_kamakura_npc0.c58
-rw-r--r--src/overlays/actors/ovl_Npc_Engineer/ac_npc_engineer.c17
-rw-r--r--yamls/jp/overlays.yaml2
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