summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrakxo <87568477+Prakxo@users.noreply.github.com>2024-09-27 19:26:30 +0200
committerGitHub <noreply@github.com>2024-09-27 10:26:30 -0700
commit8f359e10f09c51a45c7d45a7e6b91ead5fe05206 (patch)
treeb03731bed251363fc16cbcf58920af18843d88b4
parent5db5ae72018aaab568ecd9da5fb632c58db44683 (diff)
m_player audio and other_func functions (#218)
* m_player_sound * m_player_other_func * format
-rw-r--r--include/67E840.h4
-rw-r--r--include/69E2C0.h2
-rw-r--r--include/audio.h4
-rw-r--r--include/m_actor.h2
-rw-r--r--include/m_clip.h6
-rw-r--r--include/m_common_data.h6
-rw-r--r--include/m_field_info.h3
-rw-r--r--include/m_player_lib.h2
-rw-r--r--linker_scripts/jp/symbol_addrs_code.txt8
-rw-r--r--linker_scripts/jp/symbol_addrs_overlays.txt192
-rw-r--r--src/code/audio.c4
-rw-r--r--src/code/m_field_info.c2
-rw-r--r--src/code/m_kankyo.c2
-rw-r--r--src/code/m_submenu.c10
-rw-r--r--src/overlays/actors/ovl_Bee/ac_bee.c2
-rw-r--r--src/overlays/actors/player_actor/m_player.c615
-rw-r--r--src/overlays/actors/player_actor/m_player.h79
-rw-r--r--src/overlays/gamestates/ovl_play/m_play.c2
18 files changed, 711 insertions, 234 deletions
diff --git a/include/67E840.h b/include/67E840.h
index 4db65ae..9d52f95 100644
--- a/include/67E840.h
+++ b/include/67E840.h
@@ -109,7 +109,7 @@ struct Game;
// void func_8005DCCC_jp();
void mBGMPsComp_make_ps_lost_fanfare(s32 arg0, s32 arg1);
// void func_8005DD5C_jp();
-void mBGMPsComp_make_ps_wipe(s32 arg0, struct Game_Play* game_play);
+void mBGMPsComp_make_ps_wipe(s32 arg0);
// void func_8005DE0C_jp();
// void func_8005DE60_jp();
// void func_8005DE88_jp();
@@ -176,7 +176,7 @@ void mBGMPsComp_scene_mode(s32 arg0);
// void func_8005EDC4_jp();
// void func_8005EDD8_jp();
// void func_8005EDEC_jp();
-// void func_8005EE00_jp();
+void mBGMForce_room_nonstop_start(void);
// void func_8005EE20_jp();
// void func_8005EEA0_jp();
void mBGM_main(struct Game* game);
diff --git a/include/69E2C0.h b/include/69E2C0.h
index eebddb8..5ce8734 100644
--- a/include/69E2C0.h
+++ b/include/69E2C0.h
@@ -78,7 +78,7 @@ void mDemo_Request(s32 arg0, struct Actor* actor, void* arg2);
s32 mDemo_Check(s32 arg0, struct Actor* actor);
// void func_8007CF34_jp();
// void func_8007CF44_jp();
-// void func_8007CF84_jp();
+void mDemo_End(struct Actor*);
void mDemo_Main(struct Game_Play* game_play);
void func_8007CFD8_jp(struct Game_Play* game_play);
// void func_8007D030_jp();
diff --git a/include/audio.h b/include/audio.h
index 7ded4bc..4c646ee 100644
--- a/include/audio.h
+++ b/include/audio.h
@@ -20,8 +20,8 @@ void sAdo_BgmStop(u16 id);
void sAdo_BgmTrOn(u8 id);
void sAdo_BgmTrOff(u8 id);
void sAdo_SysTrgStart(u16 id);
-void sAdo_PlyWalkSe(s32 arg0, struct xyz_t* pos);
-void sAdo_PlyWalkSeRoom(s32 arg0, struct xyz_t* pos);
+void sAdo_PlyWalkSe(u16 arg0, struct xyz_t* pos);
+void sAdo_PlyWalkSeRoom(u8 arg0, struct xyz_t* pos);
void sAdo_NpcWalkSe(s32 arg0, struct xyz_t* pos);
void sAdo_NpcWalkSeRoom(u16 arg0, struct xyz_t* pos);
void sAdo_PlayerStatusLevel(u8 arg0, f32 speed);
diff --git a/include/m_actor.h b/include/m_actor.h
index 1c17587..5c9dc1e 100644
--- a/include/m_actor.h
+++ b/include/m_actor.h
@@ -114,7 +114,7 @@ typedef struct Actor {
/* 0x07C */ f32 terminalVelocity;
/* 0x080 */ UNK_TYPE1 unk_080[0x4];
/* 0x084 */ mCoBG_Check colCheck;
- /* 0x0B4 */ UNK_TYPE1 unk_0B4[0x1];
+ /* 0x0B4 */ u8 unk_0B4;
/* 0x0B5 */ u8 isDrawn;
/* 0x0B6 */ s16 yawTowardsPlayer;
/* 0x0B8 */ f32 xyzDistToPlayerSq;
diff --git a/include/m_clip.h b/include/m_clip.h
index e91d18f..4fb2683 100644
--- a/include/m_clip.h
+++ b/include/m_clip.h
@@ -114,7 +114,7 @@ typedef void (*Clip_unk_080_unk_24)(void);
typedef s32 (*Clip_unk_080_unk_28)(struct Game* game, u16 ftr, s32 res,s32 utX, s32 utZ, u16 rotation,
s32 squareOffs, s32 layer);
typedef UNK_RET (*Clip_unk_080_unk_34)(struct FurnitureActor* furnitureActor, struct Actor* myHouseActor, struct Game_Play* game_play, f32 arg0, f32 arg1);
-
+typedef s32 (*Clip_unk_080_unk_54)(struct xyz_t* pos);
typedef struct MyRoomClip {
/* 0x00 */ UNK_TYPE1 unk_00[0x4];
/* 0x04 */ Clip_unk_080_unk_04 unk_04;
@@ -123,7 +123,9 @@ typedef struct MyRoomClip {
/* 0x28 */ Clip_unk_080_unk_28 unk_28;
/* 0x2C */ UNK_TYPE1 unk_2C[0x8];
/* 0x34 */ Clip_unk_080_unk_34 unk_34; // open close proc
-} MyRoomClip; // size >= 0x8
+ /* 0x38 */ s8 unk_38[0x24];
+ /* 0x54 */ Clip_unk_080_unk_54 unk_54;
+} MyRoomClip; // size >= 0x54
typedef struct StructureClipOverlayInfo {
/* 0x00 */ s8* overlayPointer;
diff --git a/include/m_common_data.h b/include/m_common_data.h
index 3116d8a..a1527fa 100644
--- a/include/m_common_data.h
+++ b/include/m_common_data.h
@@ -160,9 +160,11 @@ typedef struct CommonData {
/* 0x10764 */ DoorData structureExitDoorData;
/* 0x1077C */ UNK_TYPE1 unk_1077C[0x24];
/* 0x107A0 */ DoorData famicomEmuDoorData;
- /* 0x107B4 */ s16 unk_107B4;
+ /* 0x107B4 */ s8 unk_107B4;
+ /* 0x107B5 */ s8 floorIdx;
/* 0x107B6 */ s16 unk_107B6; // named "demo_profile" in AC GCN decomp (though it's an array of two s16s in that game)
- /* 0x107B8 */ UNK_TYPE1 unk_107B8[0x28];
+ /* 0x107B8 */ UNK_TYPE1 unk_107B8[0x27];
+ /* 0x107FF*/ s8 paymentType;
/* 0x107E0 */ s8 playerDecoyFlag;
/* 0x107E1 */ UNK_TYPE1 unk_107E1[0x3];
/* 0x107E4 */ s16 unk_107E4;
diff --git a/include/m_field_info.h b/include/m_field_info.h
index f954aae..09e9801 100644
--- a/include/m_field_info.h
+++ b/include/m_field_info.h
@@ -10,6 +10,7 @@ struct Actor;
struct Game_Play;
struct FieldMakeBlockInfo;
struct FieldMakeMoveActor;
+struct Game;
#define FI_UT_WORLDSIZE_Z 40
#define FI_UT_WORLDSIZE_Z_F (f32)FI_UT_WORLDSIZE_Z
@@ -171,7 +172,7 @@ s32 func_8008BE00_jp(struct FieldMakeMoveActor*, s32);
// void func_8008BE38_jp();
// void func_8008BF34_jp();
// void func_8008BFC4_jp();
-// void func_8008C058_jp();
+void mFI_SetPlayerWade(struct Game*);
s32 mFI_CheckPlayerWade(s32);
s32 mFI_GetPlayerWade(void);
// void func_8008C130_jp();
diff --git a/include/m_player_lib.h b/include/m_player_lib.h
index 99c7847..456041e 100644
--- a/include/m_player_lib.h
+++ b/include/m_player_lib.h
@@ -43,7 +43,7 @@ void mPlib_Object_Exchange_keep_Player_dt(struct Game_Play* game_play);
// void func_800B1BE8_jp();
struct Player* get_player_actor_withoutCheck(struct Game_Play* game_play);
// void func_800B1C90_jp();
-s32 func_800B1CBC_jp(struct Game_Play*);
+s32 mPlib_get_player_actor_main_index(struct Game_Play*);
// void func_800B1CE0_jp();
// void func_800B1D14_jp();
// void func_800B1D40_jp();
diff --git a/linker_scripts/jp/symbol_addrs_code.txt b/linker_scripts/jp/symbol_addrs_code.txt
index 8291a7b..c7b45d0 100644
--- a/linker_scripts/jp/symbol_addrs_code.txt
+++ b/linker_scripts/jp/symbol_addrs_code.txt
@@ -339,7 +339,7 @@ func_8005ED98_jp = 0x8005ED98; // type:func
func_8005EDC4_jp = 0x8005EDC4; // type:func
func_8005EDD8_jp = 0x8005EDD8; // type:func
func_8005EDEC_jp = 0x8005EDEC; // type:func
-func_8005EE00_jp = 0x8005EE00; // type:func
+mBGMForce_room_nonstop_start = 0x8005EE00; // type:func
func_8005EE20_jp = 0x8005EE20; // type:func
func_8005EEA0_jp = 0x8005EEA0; // type:func
mBGM_main = 0x8005EEE8; // type:func
@@ -1042,7 +1042,7 @@ mDemo_Request = 0x8007CDD8; // type:func
mDemo_Check = 0x8007CF00; // type:func
func_8007CF34_jp = 0x8007CF34; // type:func
func_8007CF44_jp = 0x8007CF44; // type:func
-func_8007CF84_jp = 0x8007CF84; // type:func
+mDemo_End = 0x8007CF84; // type:func
mDemo_Main = 0x8007CFB4; // type:func
func_8007CFD8_jp = 0x8007CFD8; // type:func
func_8007D030_jp = 0x8007D030; // type:func
@@ -1420,7 +1420,7 @@ func_8008BE00_jp = 0x8008BE00; // type:func
func_8008BE38_jp = 0x8008BE38; // type:func
func_8008BF34_jp = 0x8008BF34; // type:func
func_8008BFC4_jp = 0x8008BFC4; // type:func
-func_8008C058_jp = 0x8008C058; // type:func
+mFI_SetPlayerWade = 0x8008C058; // type:func
mFI_CheckPlayerWade = 0x8008C0FC; // type:func
mFI_GetPlayerWade = 0x8008C120; // type:func
func_8008C130_jp = 0x8008C130; // type:func
@@ -2537,7 +2537,7 @@ func_800B1BB8_jp = 0x800B1BB8; // type:func
func_800B1BE8_jp = 0x800B1BE8; // type:func
get_player_actor_withoutCheck = 0x800B1C84; // type:func
func_800B1C90_jp = 0x800B1C90; // type:func
-func_800B1CBC_jp = 0x800B1CBC; // type:func
+mPlib_get_player_actor_main_index = 0x800B1CBC; // type:func
func_800B1CE0_jp = 0x800B1CE0; // type:func
func_800B1D14_jp = 0x800B1D14; // type:func
func_800B1D40_jp = 0x800B1D40; // type:func
diff --git a/linker_scripts/jp/symbol_addrs_overlays.txt b/linker_scripts/jp/symbol_addrs_overlays.txt
index 680b69f..16d8a57 100644
--- a/linker_scripts/jp/symbol_addrs_overlays.txt
+++ b/linker_scripts/jp/symbol_addrs_overlays.txt
@@ -2475,9 +2475,9 @@ func_808B4DE8_jp = 0x808B4DE8; // type:func
func_808B4E34_jp = 0x808B4E34; // type:func
func_808B4EE4_jp = 0x808B4EE4; // type:func
func_808B4EF4_jp = 0x808B4EF4; // type:func
-func_808B4F04_jp = 0x808B4F04; // type:func
+Player_actor_SetPosition_OBJtoLine_forItem = 0x808B4F04; // type:func
func_808B5150_jp = 0x808B5150; // type:func
-func_808B525C_jp = 0x808B525C; // type:func
+Player_actor_set_eye_PositionAndAngle = 0x808B525C; // type:func
func_808B527C_jp = 0x808B527C; // type:func
func_808B5310_jp = 0x808B5310; // type:func
func_808B5348_jp = 0x808B5348; // type:func
@@ -2504,7 +2504,7 @@ func_808B5960_jp = 0x808B5960; // type:func
func_808B59C0_jp = 0x808B59C0; // type:func
func_808B5A10_jp = 0x808B5A10; // type:func
func_808B5B38_jp = 0x808B5B38; // type:func
-func_808B5B60_jp = 0x808B5B60; // type:func
+Player_actor_Set_OldAngle = 0x808B5B60; // type:func
func_808B5C58_jp = 0x808B5C58; // type:func
func_808B5C68_jp = 0x808B5C68; // type:func
func_808B5D44_jp = 0x808B5D44; // type:func
@@ -2525,7 +2525,7 @@ func_808B6284_jp = 0x808B6284; // type:func
func_808B6310_jp = 0x808B6310; // type:func
func_808B6334_jp = 0x808B6334; // type:func
func_808B6360_jp = 0x808B6360; // type:func
-func_808B638C_jp = 0x808B638C; // type:func
+Player_actor_CheckScene_AbleOutItem = 0x808B638C; // type:func
func_808B63B4_jp = 0x808B63B4; // type:func
func_808B63EC_jp = 0x808B63EC; // type:func
func_808B6424_jp = 0x808B6424; // type:func
@@ -2540,7 +2540,7 @@ func_808B80D0_jp = 0x808B80D0; // type:func
func_808B8114_jp = 0x808B8114; // type:func
func_808B81B4_jp = 0x808B81B4; // type:func
func_808B8204_jp = 0x808B8204; // type:func
-func_808B828C_jp = 0x808B828C; // type:func
+Player_actor_SetFootMark_for_settle_main = 0x808B828C; // type:func
func_808B83B4_jp = 0x808B83B4; // type:func
func_808B846C_jp = 0x808B846C; // type:func
func_808B84DC_jp = 0x808B84DC; // type:func
@@ -2551,11 +2551,11 @@ func_808B8778_jp = 0x808B8778; // type:func
func_808B87C8_jp = 0x808B87C8; // type:func
func_808B87FC_jp = 0x808B87FC; // type:func
func_808B8874_jp = 0x808B8874; // type:func
-func_808B88D4_jp = 0x808B88D4; // type:func
+Player_actor_cancel_request_change_proc_index = 0x808B88D4; // type:func
func_808B8928_jp = 0x808B8928; // type:func
func_808B8948_jp = 0x808B8948; // type:func
func_808B89F8_jp = 0x808B89F8; // type:func
-func_808B8B00_jp = 0x808B8B00; // type:func
+Player_actor_cancel_request_change_proc_index_by_A_btn = 0x808B8B00; // type:func
func_808B8B54_jp = 0x808B8B54; // type:func
func_808B8B90_jp = 0x808B8B90; // type:func
func_808B8C04_jp = 0x808B8C04; // type:func
@@ -2563,10 +2563,10 @@ func_808B8C5C_jp = 0x808B8C5C; // type:func
func_808B8CF4_jp = 0x808B8CF4; // type:func
func_808B8DB8_jp = 0x808B8DB8; // type:func
func_808B8EA8_jp = 0x808B8EA8; // type:func
-func_808B8F34_jp = 0x808B8F34; // type:func
-func_808B8F90_jp = 0x808B8F90; // type:func
-func_808B8FD0_jp = 0x808B8FD0; // type:func
-func_808B9008_jp = 0x808B9008; // type:func
+Player_actor_request_camera2_main_simple_fishing = 0x808B8F34; // type:func
+Player_actor_request_camera2_main_simple_return = 0x808B8F90; // type:func
+Player_actor_request_camera2_main_normal = 0x808B8FD0; // type:func
+Player_actor_request_camera2_change_priority = 0x808B9008; // type:func
func_808B9028_jp = 0x808B9028; // type:func
func_808B90C8_jp = 0x808B90C8; // type:func
func_808B91CC_jp = 0x808B91CC; // type:func
@@ -2586,18 +2586,18 @@ func_808B996C_jp = 0x808B996C; // type:func
func_808BA0B0_jp = 0x808BA0B0; // type:func
func_808BA13C_jp = 0x808BA13C; // type:func
func_808BA1DC_jp = 0x808BA1DC; // type:func
-func_808BA388_jp = 0x808BA388; // type:func
-func_808BA75C_jp = 0x808BA75C; // type:func
+Player_actor_check_little_shake_tree = 0x808BA388; // type:func
+Player_actor_check_shake_tree_timer = 0x808BA75C; // type:func
func_808BA7BC_jp = 0x808BA7BC; // type:func
func_808BA88C_jp = 0x808BA88C; // type:func
func_808BA94C_jp = 0x808BA94C; // type:func
func_808BAA18_jp = 0x808BAA18; // type:func
func_808BAAE4_jp = 0x808BAAE4; // type:func
func_808BAB34_jp = 0x808BAB34; // type:func
-func_808BAC20_jp = 0x808BAC20; // type:func
+Player_actor_check_pitfall = 0x808BAC20; // type:func
func_808BADFC_jp = 0x808BADFC; // type:func
func_808BAE38_jp = 0x808BAE38; // type:func
-func_808BAF40_jp = 0x808BAF40; // type:func
+Player_actor_set_ripple = 0x808BAF40; // type:func
func_808BB098_jp = 0x808BB098; // type:func
func_808BB158_jp = 0x808BB158; // type:func
func_808BB1DC_jp = 0x808BB1DC; // type:func
@@ -2607,8 +2607,8 @@ func_808BB520_jp = 0x808BB520; // type:func
func_808BB570_jp = 0x808BB570; // type:func
func_808BB604_jp = 0x808BB604; // type:func
func_808BB650_jp = 0x808BB650; // type:func
-func_808BB6A4_jp = 0x808BB6A4; // type:func
-func_808BB6B8_jp = 0x808BB6B8; // type:func
+Player_actor_Culc_player_frame_counter = 0x808BB6A4; // type:func
+Player_actor_Reset_excute_cancel_wade = 0x808BB6B8; // type:func
func_808BB724_jp = 0x808BB724; // type:func
func_808BB904_jp = 0x808BB904; // type:func
func_808BB98C_jp = 0x808BB98C; // type:func
@@ -2618,7 +2618,7 @@ func_808BBCA8_jp = 0x808BBCA8; // type:func
func_808BBD34_jp = 0x808BBD34; // type:func
func_808BBD80_jp = 0x808BBD80; // type:func
func_808BBDE8_jp = 0x808BBDE8; // type:func
-func_808BBE50_jp = 0x808BBE50; // type:func
+Player_actor_Set_Indoor_Camera_Index = 0x808BBE50; // type:func
func_808BBF38_jp = 0x808BBF38; // type:func
func_808BBFA0_jp = 0x808BBFA0; // type:func
func_808BBFD4_jp = 0x808BBFD4; // type:func
@@ -2626,81 +2626,81 @@ func_808BC2D8_jp = 0x808BC2D8; // type:func
func_808BC308_jp = 0x808BC308; // type:func
func_808BC358_jp = 0x808BC358; // type:func
func_808BC3A0_jp = 0x808BC3A0; // type:func
-func_808BC3D0_jp = 0x808BC3D0; // type:func
-func_808BC494_jp = 0x808BC494; // type:func
-func_808BC4C4_jp = 0x808BC4C4; // type:func
-func_808BC4F0_jp = 0x808BC4F0; // type:func
-func_808BC520_jp = 0x808BC520; // type:func
-func_808BC584_jp = 0x808BC584; // type:func
-func_808BC5C0_jp = 0x808BC5C0; // type:func
-func_808BC5E8_jp = 0x808BC5E8; // type:func
-func_808BC610_jp = 0x808BC610; // type:func
-func_808BC638_jp = 0x808BC638; // type:func
-func_808BC658_jp = 0x808BC658; // type:func
-func_808BC678_jp = 0x808BC678; // type:func
-func_808BC6E0_jp = 0x808BC6E0; // type:func
-func_808BC748_jp = 0x808BC748; // type:func
-func_808BC798_jp = 0x808BC798; // type:func
-func_808BC7D4_jp = 0x808BC7D4; // type:func
-func_808BC7F4_jp = 0x808BC7F4; // type:func
-func_808BC814_jp = 0x808BC814; // type:func
-func_808BC834_jp = 0x808BC834; // type:func
-func_808BC854_jp = 0x808BC854; // type:func
-func_808BC874_jp = 0x808BC874; // type:func
-func_808BC894_jp = 0x808BC894; // type:func
-func_808BC8B4_jp = 0x808BC8B4; // type:func
-func_808BC8D4_jp = 0x808BC8D4; // type:func
-func_808BC8F4_jp = 0x808BC8F4; // type:func
-func_808BC914_jp = 0x808BC914; // type:func
-func_808BC934_jp = 0x808BC934; // type:func
-func_808BC954_jp = 0x808BC954; // type:func
-func_808BC974_jp = 0x808BC974; // type:func
-func_808BC994_jp = 0x808BC994; // type:func
-func_808BC9B4_jp = 0x808BC9B4; // type:func
-func_808BC9D8_jp = 0x808BC9D8; // type:func
-func_808BC9FC_jp = 0x808BC9FC; // type:func
-func_808BCA1C_jp = 0x808BCA1C; // type:func
-func_808BCA3C_jp = 0x808BCA3C; // type:func
-func_808BCA5C_jp = 0x808BCA5C; // type:func
-func_808BCA7C_jp = 0x808BCA7C; // type:func
-func_808BCABC_jp = 0x808BCABC; // type:func
-func_808BCAE0_jp = 0x808BCAE0; // type:func
-func_808BCB00_jp = 0x808BCB00; // type:func
-func_808BCB20_jp = 0x808BCB20; // type:func
-func_808BCB40_jp = 0x808BCB40; // type:func
-func_808BCB60_jp = 0x808BCB60; // type:func
-func_808BCB88_jp = 0x808BCB88; // type:func
-func_808BCBA8_jp = 0x808BCBA8; // type:func
-func_808BCBC8_jp = 0x808BCBC8; // type:func
-func_808BCBE8_jp = 0x808BCBE8; // type:func
-func_808BCC08_jp = 0x808BCC08; // type:func
-func_808BCC28_jp = 0x808BCC28; // type:func
-func_808BCC48_jp = 0x808BCC48; // type:func
-func_808BCCD8_jp = 0x808BCCD8; // type:func
-func_808BCCEC_jp = 0x808BCCEC; // type:func
-func_808BCD0C_jp = 0x808BCD0C; // type:func
-func_808BCD64_jp = 0x808BCD64; // type:func
-func_808BCD84_jp = 0x808BCD84; // type:func
-func_808BCDDC_jp = 0x808BCDDC; // type:func
-func_808BCDEC_jp = 0x808BCDEC; // type:func
-func_808BCE30_jp = 0x808BCE30; // type:func
-func_808BCE50_jp = 0x808BCE50; // type:func
-func_808BCE70_jp = 0x808BCE70; // type:func
-func_808BCE90_jp = 0x808BCE90; // type:func
-func_808BCEB0_jp = 0x808BCEB0; // type:func
-func_808BCED4_jp = 0x808BCED4; // type:func
-func_808BCEF8_jp = 0x808BCEF8; // type:func
-func_808BCF68_jp = 0x808BCF68; // type:func
-func_808BCFE4_jp = 0x808BCFE4; // type:func
-func_808BD0B8_jp = 0x808BD0B8; // type:func
-func_808BD1A8_jp = 0x808BD1A8; // type:func
-func_808BD218_jp = 0x808BD218; // type:func
-func_808BD320_jp = 0x808BD320; // type:func
-func_808BD340_jp = 0x808BD340; // type:func
-func_808BD350_jp = 0x808BD350; // type:func
-func_808BD360_jp = 0x808BD360; // type:func
-func_808BD380_jp = 0x808BD380; // type:func
-func_808BD3D8_jp = 0x808BD3D8; // type:func
+Player_actor_sound_SetStatus = 0x808BC3D0; // type:func
+Player_actor_set_sound_common1 = 0x808BC494; // type:func
+Player_actor_set_sound_common2 = 0x808BC4C4; // type:func
+Player_actor_sound_FootStep1 = 0x808BC4F0; // type:func
+Player_actor_sound_FootStep2 = 0x808BC520; // type:func
+Player_actor_sound_Tumble = 0x808BC584; // type:func
+Player_actor_sound_AMI_FURI = 0x808BC5C0; // type:func
+Player_actor_sound_AMI_HIT = 0x808BC5E8; // type:func
+Player_actor_sound_AMI_GET = 0x808BC610; // type:func
+Player_actor_sound_GASAGOSO = 0x808BC638; // type:func
+Player_actor_sound_AXE_FURI = 0x808BC658; // type:func
+Player_actor_sound_AXE_HIT = 0x808BC678; // type:func
+Player_actor_sound_AXE_CUT = 0x808BC6E0; // type:func
+Player_actor_sound_SIT = 0x808BC748; // type:func
+Player_actor_sound_STANDUP = 0x808BC798; // type:func
+Player_actor_sound_JUMP = 0x808BC7D4; // type:func
+Player_actor_sound_LANDING = 0x808BC7F4; // type:func
+Player_actor_sound_ITEM_GET = 0x808BC814; // type:func
+Player_actor_sound_BED_IN = 0x808BC834; // type:func
+Player_actor_sound_BED_NEGAERI = 0x808BC854; // type:func
+Player_actor_sound_BED_OUT = 0x808BC874; // type:func
+Player_actor_sound_ROD_STROKE = 0x808BC894; // type:func
+Player_actor_sound_ROD_STROKE_small = 0x808BC8B4; // type:func
+Player_actor_sound_ROD_BACK = 0x808BC8D4; // type:func
+Player_actor_sound_scoop1 = 0x808BC8F4; // type:func
+Player_actor_sound_scoop_umeru = 0x808BC914; // type:func
+Player_actor_sound_scoop_hit = 0x808BC934; // type:func
+Player_actor_sound_scoop_shigemi = 0x808BC954; // type:func
+Player_actor_sound_ITEM_HORIDASHI = 0x808BC974; // type:func
+Player_actor_sound_slip = 0x808BC994; // type:func
+Player_actor_sound_tree_touch = 0x808BC9B4; // type:func
+Player_actor_sound_tree_yurasu = 0x808BC9D8; // type:func
+Player_actor_sound_kirikabu_scoop = 0x808BC9FC; // type:func
+Player_actor_sound_kirikabu_out = 0x808BCA1C; // type:func
+Player_actor_sound_coin_gasagoso = 0x808BCA3C; // type:func
+Player_actor_sound_knock = 0x808BCA5C; // type:func
+Player_actor_sound_araiiki = 0x808BCA7C; // type:func
+Player_actor_sound_zassou_nuku = 0x808BCABC; // type:func
+Player_actor_sound_hachi_sasareru = 0x808BCAE0; // type:func
+Player_actor_sound_wear = 0x808BCB00; // type:func
+Player_actor_sound_dai_ue_kakunou = 0x808BCB20; // type:func
+Player_actor_sound_umbrella_rotate = 0x808BCB40; // type:func
+Player_actor_sound_Get_bgm_num_forCompletePayment = 0x808BCB60; // type:func
+Player_actor_sound_camera_move1 = 0x808BCB88; // type:func
+Player_actor_sound_camera_move2 = 0x808BCBA8; // type:func
+Player_actor_sound_karaburi = 0x808BCBC8; // type:func
+Player_actor_sound_scoop_tree_hit = 0x808BCBE8; // type:func
+Player_actor_sound_scoop_item_hit = 0x808BCC08; // type:func
+Player_actor_sound_axe_ball_hit = 0x808BCC28; // type:func
+Player_actor_ct_other_func1 = 0x808BCC48; // type:func
+Player_actor_setup_main_Wade_other_func1 = 0x808BCCD8; // type:func
+Player_actor_setup_main_Wade_snowball_other_func1 = 0x808BCCEC; // type:func
+Player_actor_setup_main_Wade_other_func2 = 0x808BCD0C; // type:func
+Player_actor_setup_main_Wade_snowball_other_func2 = 0x808BCD64; // type:func
+Player_actor_setup_main_Demo_wade_other_func2 = 0x808BCD84; // type:func
+Player_actor_main_Wade_other_func1 = 0x808BCDDC; // type:func
+Player_actor_main_Sitdown_wait_other_func2 = 0x808BCDEC; // type:func
+Player_actor_main_Relax_rod_other_func2 = 0x808BCE30; // type:func
+Player_actor_main_Vib_rod_other_func2 = 0x808BCE50; // type:func
+Player_actor_main_Collect_rod_other_func2 = 0x808BCE70; // type:func
+Player_actor_main_Fly_rod_other_func2 = 0x808BCE90; // type:func
+Player_actor_settle_main_Collect_rod_other_func2 = 0x808BCEB0; // type:func
+Player_actor_settle_main_Fly_rod_other_func2 = 0x808BCED4; // type:func
+Player_actor_set_nextgoto_info_type0 = 0x808BCEF8; // type:func
+Player_actor_set_nextgoto_info_type1 = 0x808BCF68; // type:func
+Player_actor_check_nextgoto = 0x808BCFE4; // type:func
+Player_actor_check_forward = 0x808BD0B8; // type:func
+Player_actor_move_other_func1 = 0x808BD1A8; // type:func
+Player_actor_move_other_func2 = 0x808BD218; // type:func
+Player_actor_draw_other_func2 = 0x808BD320; // type:func
+Player_actor_change_main_index_other_func1 = 0x808BD340; // type:func
+Player_actor_change_main_index_other_func2 = 0x808BD350; // type:func
+Player_actor_settle_main_other_func2 = 0x808BD360; // type:func
+Player_actor_SetActorUki = 0x808BD380; // type:func
+Player_actor_Item_main_other_func1 = 0x808BD3D8; // type:func
func_808BD3F8_jp = 0x808BD3F8; // type:func
func_808BD584_jp = 0x808BD584; // type:func
Player_actor_Get_ItemKind = 0x808BD5C4; // type:func
@@ -3843,11 +3843,11 @@ func_808DD318_jp = 0x808DD318; // type:func
func_808DD398_jp = 0x808DD398; // type:func
Player_actor_ct = 0x808DD748; // type:func
Player_actor_dt = 0x808DD81C; // type:func
-func_808DD874_jp = 0x808DD874; // type:func
-func_808DD8F0_jp = 0x808DD8F0; // type:func
+Player_actor_request_main_change_from_submenu = 0x808DD874; // type:func
+Player_actor_request_change_item = 0x808DD8F0; // type:func
func_808DD9B4_jp = 0x808DD9B4; // type:func
func_808DDA18_jp = 0x808DDA18; // type:func
-func_808DDB34_jp = 0x808DDB34; // type:func
+Player_actor_change_proc_index = 0x808DDB34; // type:func
Player_actor_move = 0x808DDB5C; // type:func
Player_actor_draw = 0x808DDBD4; // type:func
diff --git a/src/code/audio.c b/src/code/audio.c
index 71f9bbb..0d8f173 100644
--- a/src/code/audio.c
+++ b/src/code/audio.c
@@ -76,7 +76,7 @@ void sAdo_SysTrgStart(u16 id) {
Na_SysTrgStart(id);
}
-void sAdo_PlyWalkSe(s32 arg0, xyz_t* pos) {
+void sAdo_PlyWalkSe(u16 arg0, xyz_t* pos) {
f32 distanceVal;
u16 angleVal;
@@ -84,7 +84,7 @@ void sAdo_PlyWalkSe(s32 arg0, xyz_t* pos) {
Na_PlyWalkSe(arg0, angleVal, distanceVal);
}
-void sAdo_PlyWalkSeRoom(s32 arg0, xyz_t* pos) {
+void sAdo_PlyWalkSeRoom(u8 arg0, xyz_t* pos) {
f32 distanceVal;
u16 angleVal;
diff --git a/src/code/m_field_info.c b/src/code/m_field_info.c
index 46116c8..4932487 100644
--- a/src/code/m_field_info.c
+++ b/src/code/m_field_info.c
@@ -253,7 +253,7 @@
#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_8008BFC4_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_8008C058_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/mFI_SetPlayerWade.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/mFI_CheckPlayerWade.s")
diff --git a/src/code/m_kankyo.c b/src/code/m_kankyo.c
index faa526d..4291b7d 100644
--- a/src/code/m_kankyo.c
+++ b/src/code/m_kankyo.c
@@ -8,6 +8,8 @@
#include "m_event.h"
#include "audio.h"
#include "m_all_grow.h"
+#include "prevent_bss_reordering.h"
+#include "prevent_bss_reordering2.h"
#include "overlays/actors/player_actor/m_player.h"
#include "m_player_lib.h"
diff --git a/src/code/m_submenu.c b/src/code/m_submenu.c
index 079c25b..5f7c230 100644
--- a/src/code/m_submenu.c
+++ b/src/code/m_submenu.c
@@ -202,7 +202,7 @@ void func_800C47B4_jp(UNUSED void* arg0, UNUSED void* arg1) {
if (temp_v0_3 != NULL) {
FaultDrawer_Printf("\n");
FaultDrawer_Printf("player infomation\n");
- FaultDrawer_Printf("main_index :%d %d\n", temp_v0_3->unk_0CF0, temp_v0_3->unk_0CF4);
+ FaultDrawer_Printf("main_index :%d %d\n", temp_v0_3->nowMainIndex, temp_v0_3->unk_0CF4);
FaultDrawer_Printf("request_main_index :%d %d %d\n", temp_v0_3->unk_0D00, temp_v0_3->unk_0D04,
temp_v0_3->unk_0D08);
FaultDrawer_Printf("pos :%d %d %d\n", (s32)temp_v0_3->actor.world.pos.x, (s32)temp_v0_3->actor.world.pos.y,
@@ -347,7 +347,7 @@ void mSM_Reset_player_btn_type1(Game_Play* game_play) {
Player* player = get_player_actor_withoutCheck(game_play);
if (player != NULL) {
- player->unk_12B8 = 0;
+ player->pressedAButton = 0;
player->unk_12BC = 1;
}
}
@@ -382,11 +382,11 @@ void mSM_submenu_ctrl(Game_Play* game_play) {
Player* player = get_player_actor_withoutCheck(game_play);
UNUSED s32 pad;
- if ((player != NULL) && (player->unk_12B8 == 1) && (common_data.unk_10A68 == 0) && (submenu->unk_E2 == 0) &&
- (submenu->unk_E3 <= 0)) {
+ if ((player != NULL) && (player->pressedAButton == TRUE) && (common_data.unk_10A68 == 0) &&
+ (submenu->unk_E2 == 0) && (submenu->unk_E3 <= 0)) {
if (mPlib_able_submenu_type1(game_play) != 0) {
if (ABS(BINANG_ROT180(player->actor.shape.rot.y)) < 0x2000) {
- switch (player->unk_12C0) {
+ switch (player->itemInFront) {
case 0x7:
case 0xB:
mSM_open_submenu(submenu, 6, 0, 0);
diff --git a/src/overlays/actors/ovl_Bee/ac_bee.c b/src/overlays/actors/ovl_Bee/ac_bee.c
index 6f05e28..ff49593 100644
--- a/src/overlays/actors/ovl_Bee/ac_bee.c
+++ b/src/overlays/actors/ovl_Bee/ac_bee.c
@@ -165,7 +165,7 @@ void func_80A93EFC_jp(Bee* this, Game_Play* game_play) {
return;
}
}
- } else if ((func_800B1CBC_jp((Game_Play*)gamePT) == 0x5E) != 0) {
+ } else if ((mPlib_get_player_actor_main_index((Game_Play*)gamePT) == 0x5E) != 0) {
if (func_800B5718_jp() != 0) {
aBEE_setupAction(this, BEE_PROCESS_DISAPPEAR, game_play);
return;
diff --git a/src/overlays/actors/player_actor/m_player.c b/src/overlays/actors/player_actor/m_player.c
index a17917e..29cda2c 100644
--- a/src/overlays/actors/player_actor/m_player.c
+++ b/src/overlays/actors/player_actor/m_player.c
@@ -2,6 +2,15 @@
#include "m_player_lib.h"
#include "game.h"
#include "overlays/gamestates/ovl_play/m_play.h"
+#include "m_room_type.h"
+#include "audio.h"
+#include "m_actor_dlftbls.h"
+#include "m_field_info.h"
+#include "m_name_table.h"
+#include "m_scene_table.h"
+#include "m_debug.h"
+#include "69E2C0.h"
+#include "67E840.h"
extern ClObjPipe_Init Player_actor_OcInfoData_forStand;
#if 0
@@ -25,6 +34,32 @@ ClObjTris_Init Player_actor_pclobj_tris_data_forItem = { { OC1_TYPE_10 | OC1_TYP
#endif
s8 Player_actor_Get_ItemKind(Actor* actor, s32 kind);
+void Player_actor_request_camera2_main_simple_fishing(Actor* actor, Game* game);
+void Player_actor_request_camera2_main_simple_return(Actor* actor, Game* game);
+void Player_actor_request_camera2_main_normal(Game* game);
+void Player_actor_request_camera2_change_priority(Game* game);
+
+void Player_actor_cancel_request_change_proc_index_by_A_btn(Actor* actor);
+void Player_actor_request_main_change_from_submenu(Actor* actor, Game* game);
+void Player_actor_request_change_item(Game* game);
+void Player_actor_cancel_request_change_proc_index(Actor* actor);
+void Player_actor_change_proc_index(Actor* actor, Game* game);
+void Player_actor_Reset_excute_cancel_wade(Actor* actor);
+void Player_actor_Set_OldAngle(Actor* actor);
+void Player_actor_Culc_player_frame_counter(Actor* actor);
+
+void Player_actor_set_eye_PositionAndAngle(Actor* actor);
+void Player_actor_sound_SetStatus(Actor* actor);
+void Player_actor_Set_Indoor_Camera_Index(Actor* actor, Game* game);
+void Player_actor_check_forward(Actor* actor, Game* game);
+void Player_actor_check_little_shake_tree(Actor* actor, Game* game);
+void Player_actor_check_shake_tree_timer(Actor* actor);
+void Player_actor_check_pitfall(Actor* actor, Game* game);
+void Player_actor_set_ripple(Actor* actor, Game* game);
+
+void Player_actor_SetPosition_OBJtoLine_forItem(Actor* actor, Game* game);
+void Player_actor_SetFootMark_for_settle_main(Actor* actor, Game* game);
+s32 Player_actor_CheckScene_AbleOutItem(s32 sceneNo);
// m_player_controller
@@ -33,7 +68,7 @@ s32 Player_actor_CheckController_forPickup(Game* game) {
PlayerControllerData* data = mPlib_Get_controller_data_for_title_demo_p();
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
return !Player_ITEM_IS_VALID(kind) && (data->triggerButtonA != 0) && (data->buttonB != 0);
}
@@ -44,7 +79,7 @@ s32 Player_actor_CheckController_forPickup(Game* game) {
s32 Player_actor_CheckController_forAxe(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
if (Player_ITEM_IS_AXE(kind)) {
if (mEv_CheckTitleDemo() > 0) {
@@ -59,7 +94,7 @@ s32 Player_actor_CheckController_forAxe(Game* game) {
s32 Player_actor_CheckController_forNet(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
if (Player_ITEM_IS_NET(kind)) {
if (mEv_CheckTitleDemo() > 0) {
@@ -74,7 +109,7 @@ s32 Player_actor_CheckController_forNet(Game* game) {
s32 Player_actor_CheckController_forRod(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
if (Player_ITEM_IS_ROD(kind)) {
if (mEv_CheckTitleDemo() > 0) {
@@ -89,7 +124,7 @@ s32 Player_actor_CheckController_forRod(Game* game) {
s32 Player_actor_CheckController_forScoop(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
if (Player_ITEM_IS_SCOOP(kind)) {
if (mEv_CheckTitleDemo() > 0) {
@@ -104,7 +139,7 @@ s32 Player_actor_CheckController_forScoop(Game* game) {
s32 Player_actor_CheckController_forUmbrella(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
if (Player_ITEM_IS_UMBRELLA(kind) != FALSE) {
if (mEv_CheckTitleDemo() > 0) {
@@ -119,9 +154,9 @@ s32 Player_actor_CheckController_forUmbrella(Game* game) {
int Player_actor_CheckController_forShake_tree(Game* game) {
Actor* actor = (Actor*)get_player_actor_withoutCheck((Game_Play*)game);
Player* player = (Player*)actor;
- s8 kind = Player_actor_Get_ItemKind(actor, player->unk_0CF0);
+ s8 kind = Player_actor_Get_ItemKind(actor, player->nowMainIndex);
- if (!Player_ITEM_KIND_CHECK(kind, 0, Player_ITEM_KIND_SCOOP) || Player_ITEM_IS_UMBRELLA(kind) != FALSE) {
+ if (!Player_ITEM_IS_VALID(kind) || Player_ITEM_IS_UMBRELLA(kind) != FALSE) {
if (mEv_CheckTitleDemo() > 0) {
PlayerControllerData* data = mPlib_Get_controller_data_for_title_demo_p();
return (data->triggerButtonA != 0) && (data->buttonB == 0);
@@ -327,11 +362,13 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B4EF4_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B4F04_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_SetPosition_OBJtoLine_forItem.s")
+// clang-format on
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B5150_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B525C_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_set_eye_PositionAndAngle.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B527C_jp.s")
@@ -385,7 +422,7 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B5B38_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B5B60_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_Set_OldAngle.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B5C58_jp.s")
@@ -427,7 +464,7 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B6360_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B638C_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_CheckScene_AbleOutItem.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B63B4_jp.s")
@@ -457,7 +494,9 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8204_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B828C_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_SetFootMark_for_settle_main.s")
+// clang-format on
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B83B4_jp.s")
@@ -479,7 +518,9 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8874_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B88D4_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_cancel_request_change_proc_index.s")
+// clang-format on
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8928_jp.s")
@@ -487,7 +528,9 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B89F8_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8B00_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_cancel_request_change_proc_index_by_A_btn.s")
+// clang-format on
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8B54_jp.s")
@@ -503,13 +546,21 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8EA8_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8F34_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_camera2_main_simple_fishing.s")
+// clang-format on
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8F90_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_camera2_main_simple_return.s")
+// clang-format on
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B8FD0_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_camera2_main_normal.s")
+// clang-format on
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B9008_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_camera2_change_priority.s")
+// clang-format on
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808B9028_jp.s")
@@ -549,9 +600,9 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BA1DC_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BA388_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_check_little_shake_tree.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BA75C_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_check_shake_tree_timer.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BA7BC_jp.s")
@@ -565,13 +616,13 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BAB34_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BAC20_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_check_pitfall.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BADFC_jp.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BAE38_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BAF40_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_set_ripple.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BB098_jp.s")
@@ -591,9 +642,9 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BB650_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BB6A4_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_Culc_player_frame_counter.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BB6B8_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_Reset_excute_cancel_wade.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BB724_jp.s")
@@ -613,7 +664,7 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BBDE8_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BBE50_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_Set_Indoor_Camera_Index.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BBF38_jp.s")
@@ -629,155 +680,510 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC3A0_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC3D0_jp.s")
+// m_player_audio
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC494_jp.s")
+void Player_actor_sound_SetStatus(Actor* actor) {
+ Player* player = (Player*)actor;
+ u8 status;
+ f32 speed;
+ f32 frameControlSpeed;
+
+ status = player->nowMainIndex;
+ frameControlSpeed = player->skeletonInfo0.frameControl.speed;
+ speed = frameControlSpeed / 1.1999999f;
+
+ switch (player->nowMainIndex) {
+ case 42:
+ case 74:
+ case 8:
+ status = Player_WALK;
+ break;
+ case 9:
+ status = Player_RUN;
+ break;
+ case 10:
+ status = Player_DASH;
+ break;
+ default:
+ status = Player_WAIT;
+ break;
+ }
+
+ if (speed > 1.0f) {
+ speed = 1.0f;
+ } else if (speed < 0.0f) {
+ speed = 0.0f;
+ }
+ sAdo_PlayerStatusLevel(status, speed);
+}
+
+void Player_actor_set_sound_common1(xyz_t* pos, u16 id) {
+ sAdo_OngenTrgStart(id, pos);
+}
+
+void Player_actor_set_sound_common2(Actor* actor, u16 id) {
+ Player_actor_set_sound_common1(&actor->world.pos, id);
+}
+
+void Player_actor_sound_FootStep1(Actor* actor, u16 id) {
+ sAdo_PlyWalkSe(id, &actor->world.pos);
+}
+
+void Player_actor_sound_FootStep2(Actor* actor) {
+ s32 floorId;
+
+ floorId = common_data.floorIdx;
+ if (common_data.floorIdx >= 0) {
+ if (common_data.floorIdx < 0x49) {
+ sAdo_PlyWalkSeRoom(floorId, &actor->world.pos);
+ }
+ } else {
+ Player_actor_sound_FootStep1(actor, sAdo_Get_WalkLabel(actor->colCheck.colResult.unk5));
+ }
+}
+
+void Player_actor_sound_Tumble(Actor* actor) {
+ Player_actor_set_sound_common2(actor, sAdo_Get_KokeruLabel(actor->colCheck.colResult.unk5));
+}
+
+void Player_actor_sound_AMI_FURI(Actor* actor) {
+ Player* player = (Player*)actor;
+
+ Player_actor_set_sound_common1(&player->netPos, 0x5A);
+}
+
+void Player_actor_sound_AMI_HIT(Actor* actor) {
+ Player* player = (Player*)actor;
+
+ Player_actor_set_sound_common1(&player->netPos, 0x5C);
+}
+
+void Player_actor_sound_AMI_GET(Actor* actor) {
+ Player* player = (Player*)actor;
+
+ Player_actor_set_sound_common1(&player->netPos, 0x5D);
+}
+
+void Player_actor_sound_GASAGOSO(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x69);
+}
+
+void Player_actor_sound_AXE_FURI(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x5A);
+}
+
+void Player_actor_sound_AXE_HIT(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
+ UNUSED s32 pad;
+ UNUSED s32 pad2;
+ xyz_t pos;
+
+ if ((mPlib_get_player_actor_main_index((Game_Play*)game) == Player_INDEX_REFLECT_AXE) != FALSE) {
+
+ pos.x = player->mainIndexData.reflectAxe.axeCommon.target.x;
+ pos.z = player->mainIndexData.reflectAxe.axeCommon.target.z;
+ pos.y = actor->world.pos.y + 20.0f;
+
+ Player_actor_set_sound_common1(&pos, 0x41D);
+ }
+}
+
+void Player_actor_sound_AXE_CUT(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
+ UNUSED s32 pad;
+ UNUSED s32 pad2;
+ xyz_t pos;
+
+ if ((mPlib_get_player_actor_main_index((Game_Play*)game) == Player_INDEX_SWING_AXE) != FALSE) {
+
+ pos.x = player->mainIndexData.swingAxe.axeCommon.target.x;
+ pos.z = player->mainIndexData.swingAxe.axeCommon.target.z;
+ pos.y = actor->world.pos.y + 20.0f;
+
+ Player_actor_set_sound_common1(&pos, 0x41E);
+ }
+}
+
+void Player_actor_sound_SIT(Actor* actor, Game* game) {
+ if ((mPlib_get_player_actor_main_index((Game_Play*)game) == Player_INDEX_SITDOWN) != FALSE) {
+ Player* player = (Player*)actor;
+ s32 id = mRmTp_GetFtrActionSE(player->mainIndexData.sitdown.ftrIdx, mRmTp_CHAIR_ACTION_SIT);
+
+ if (id >= 0) {
+ Player_actor_set_sound_common2(actor, id);
+ }
+ }
+}
+
+void Player_actor_sound_STANDUP(Actor* actor, s32 ftrIdx) {
+ s32 id = mRmTp_GetFtrActionSE(ftrIdx, mRmTp_CHAIR_ACTION_STAND);
+
+ if (id >= 0) {
+ Player_actor_set_sound_common2(actor, id);
+ }
+}
+
+void Player_actor_sound_JUMP(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x42A);
+}
+
+void Player_actor_sound_LANDING(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x42B);
+}
+
+void Player_actor_sound_ITEM_GET(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x40);
+}
+
+void Player_actor_sound_BED_IN(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x415);
+}
+
+void Player_actor_sound_BED_NEGAERI(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x416);
+}
+
+void Player_actor_sound_BED_OUT(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x417);
+}
+
+void Player_actor_sound_ROD_STROKE(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x109);
+}
+
+void Player_actor_sound_ROD_STROKE_small(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x445);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC4C4_jp.s")
+void Player_actor_sound_ROD_BACK(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x10A);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC4F0_jp.s")
+void Player_actor_sound_scoop1(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x11E);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC520_jp.s")
+void Player_actor_sound_scoop_umeru(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x120);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC584_jp.s")
+void Player_actor_sound_scoop_hit(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x121);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC5C0_jp.s")
+void Player_actor_sound_scoop_shigemi(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x401);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC5E8_jp.s")
+void Player_actor_sound_ITEM_HORIDASHI(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x57);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC610_jp.s")
+void Player_actor_sound_slip(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x129);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC638_jp.s")
+void Player_actor_sound_tree_touch(xyz_t* pos) {
+ sAdo_OngenTrgStart(0x134, pos);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC658_jp.s")
+void Player_actor_sound_tree_yurasu(xyz_t* pos) {
+ sAdo_OngenTrgStart(0x135, pos);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC678_jp.s")
+void Player_actor_sound_kirikabu_scoop(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x148);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC6E0_jp.s")
+void Player_actor_sound_kirikabu_out(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x149);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC748_jp.s")
+void Player_actor_sound_coin_gasagoso(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x14A);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC798_jp.s")
+void Player_actor_sound_knock(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x14E);
+}
+void Player_actor_sound_araiiki(Actor* actor) {
+ s8 gender = common_data.privateInfo->gender;
+ u16 id = (gender == 0) ? 0x158 : 0x15A;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC7D4_jp.s")
+ Player_actor_set_sound_common2(actor, id);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC7F4_jp.s")
+void Player_actor_sound_zassou_nuku(xyz_t* pos) {
+ sAdo_OngenTrgStart(0x15F, pos);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC814_jp.s")
+void Player_actor_sound_hachi_sasareru(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x160);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC834_jp.s")
+void Player_actor_sound_wear(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x11C);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC854_jp.s")
+void Player_actor_sound_dai_ue_kakunou(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x430);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC874_jp.s")
+void Player_actor_sound_umbrella_rotate(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x432);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC894_jp.s")
+u8 Player_actor_sound_Get_bgm_num_forCompletePayment(void) {
+ switch (common_data.paymentType) {
+ case 1:
+ return 0x49;
+ default:
+ return 0x4A;
+ }
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC8B4_jp.s")
+void Player_actor_sound_camera_move1(void) {
+ sAdo_SysTrgStart(0x40D);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC8D4_jp.s")
+void Player_actor_sound_camera_move2(void) {
+ sAdo_SysTrgStart(0x40E);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC8F4_jp.s")
+void Player_actor_sound_karaburi(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x43A);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC914_jp.s")
+void Player_actor_sound_scoop_tree_hit(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x448);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC934_jp.s")
+void Player_actor_sound_scoop_item_hit(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x449);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC954_jp.s")
+void Player_actor_sound_axe_ball_hit(Actor* actor) {
+ Player_actor_set_sound_common2(actor, 0x449);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC974_jp.s")
+// m_player_other_func
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC994_jp.s")
+void Player_actor_ct_other_func1(UNUSED Actor* actor, Game* game) {
+ Game_Play* play = (Game_Play*)game;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC9B4_jp.s")
+ play->submenu.unk_E2 = TRUE;
+ actor->unk_0B4 = 1;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC9D8_jp.s")
+ Actor_info_make_actor(&play->actorInfo, play, ACTOR_FIELD_DRAW, actor->world.pos.x, actor->world.pos.y,
+ actor->world.pos.z, 0, 0, 0, -1, -1, -1, 0, -1, -1, -1);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BC9FC_jp.s")
+void Player_actor_setup_main_Wade_other_func1(UNUSED Actor* actor, Game* game) {
+ Game_Play* play = (Game_Play*)game;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCA1C_jp.s")
+ play->objectExchangeBank.unk1820 = 1;
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCA3C_jp.s")
+void Player_actor_setup_main_Wade_snowball_other_func1(Actor* actor, Game* game) {
+ Player_actor_setup_main_Wade_other_func1(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCA5C_jp.s")
+void Player_actor_setup_main_Wade_other_func2(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
+ Game_Play* play = (Game_Play*)game;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCA7C_jp.s")
+ mFI_SetBearActor(play, player->mainIndexData.wade.endPos, TRUE);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCABC_jp.s")
+ common_data.unk_104AC = FALSE;
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCAE0_jp.s")
+void Player_actor_setup_main_Wade_snowball_other_func2(Actor* actor, Game* game) {
+ Player_actor_setup_main_Wade_other_func2(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCB00_jp.s")
+void Player_actor_setup_main_Demo_wade_other_func2(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
+ Game_Play* play = (Game_Play*)game;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCB20_jp.s")
+ mFI_SetBearActor(play, player->mainIndexData.wade.endPos, TRUE);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCB40_jp.s")
+ common_data.unk_104AC = FALSE;
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCB60_jp.s")
+void Player_actor_main_Wade_other_func1(UNUSED Actor* actor, UNUSED Game* game) {
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCB88_jp.s")
+void Player_actor_main_Sitdown_wait_other_func2(Actor* actor, UNUSED Game* game) {
+ if (common_data.clip.myRoomClip != NULL) {
+ common_data.clip.myRoomClip->unk_54(&actor->world.pos);
+ }
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCBA8_jp.s")
+void Player_actor_main_Relax_rod_other_func2(Actor* actor, Game* game) {
+ Player_actor_request_camera2_main_simple_fishing(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCBC8_jp.s")
+void Player_actor_main_Vib_rod_other_func2(Actor* actor, Game* game) {
+ Player_actor_request_camera2_main_simple_fishing(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCBE8_jp.s")
+void Player_actor_main_Collect_rod_other_func2(Actor* actor, Game* game) {
+ Player_actor_request_camera2_main_simple_return(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCC08_jp.s")
+void Player_actor_main_Fly_rod_other_func2(Actor* actor, Game* game) {
+ Player_actor_request_camera2_main_simple_return(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCC28_jp.s")
+void Player_actor_settle_main_Collect_rod_other_func2(UNUSED Actor* actor, Game* game) {
+ Player_actor_request_camera2_main_normal(game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCC48_jp.s")
+void Player_actor_settle_main_Fly_rod_other_func2(UNUSED Actor* actor, Game* game) {
+ Player_actor_request_camera2_change_priority(game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCCD8_jp.s")
+void Player_actor_set_nextgoto_info_type0(Actor* actor) {
+ Game_Play* play = (Game_Play*)gamePT;
+ Player* player = get_player_actor_withoutCheck(play);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCCEC_jp.s")
+ if (goto_other_scene(play, &common_data.structureExitDoorData, TRUE) != TRUE) {
+ mDemo_End(actor);
+ } else {
+ mBGMPsComp_make_ps_wipe(0x428A);
+ }
+ player->updateSceneBGMode = TRUE;
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCD0C_jp.s")
+void Player_actor_set_nextgoto_info_type1(Actor* actor) {
+ Game_Play* play = (Game_Play*)gamePT;
+ Player* player = (Player*)actor;
+ s32 item = player->itemInFront;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCD64_jp.s")
+ if (goto_next_scene(play, item - DOOR_START, TRUE) != TRUE) {
+ mDemo_End(actor);
+ } else {
+ if (common_data.doorData.nextSceneId - 1 == SCENE_DEPART_2) {
+ mBGMForce_room_nonstop_start();
+ } else {
+ mBGMPsComp_make_ps_wipe(0x28A);
+ }
+ }
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCD84_jp.s")
+void Player_actor_check_nextgoto(Actor* actor, Game* game) {
+ Game_Play* play = (Game_Play*)game;
+ Player* player = (Player*)actor;
+ s32 door;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCDDC_jp.s")
+ s32 item = (u16)player->itemInFront;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCDEC_jp.s")
+ if (ACTOR_FGNAME_GET_F000((u16)player->itemInFront) == FGNAME_F000_4) {
+ if (mEv_CheckTitleDemo() <= 0 && play->unk_1EE3 == 0) {
+ door = item;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCE30_jp.s")
+ if (door >= EXIT_DOOR && door < EXIT_DOOR1) {
+ mDemo_Request(2, actor, Player_actor_set_nextgoto_info_type0);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCE50_jp.s")
+ if (player->updateSceneBGMode != FALSE) {
+ mBGMPsComp_scene_mode(0xE);
+ player->updateSceneBGMode = FALSE;
+ }
+ } else if (door >= DOOR0 && door < EXIT_DOOR) {
+ mDemo_Request(2, actor, Player_actor_set_nextgoto_info_type1);
+ }
+ }
+ }
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCE70_jp.s")
+void Player_actor_check_forward(Actor* actor, Game* game) {
+ s16 rot = actor->shape.rot.y;
+ xyz_t pos;
+ Player* player = (Player*)actor;
+ u16* item;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCE90_jp.s")
+ pos.x = actor->world.pos.x + 0.00061037019f * sins(rot);
+ pos.z = actor->world.pos.z + 0.00061037019f * coss(rot);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCEB0_jp.s")
+ item = mFI_GetUnitFG(pos);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCED4_jp.s")
+ player->forwardUtPos.x = pos.x;
+ player->forwardUtPos.z = pos.z;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCEF8_jp.s")
+ if (item != NULL) {
+ player->itemInFront = *item;
+ } else {
+ player->itemInFront = 0;
+ }
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCF68_jp.s")
+ Player_actor_check_nextgoto(actor, game);
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BCFE4_jp.s")
+ if (chkTrigger(A_BUTTON)) {
+ player->pressedAButton = TRUE;
+ } else {
+ player->pressedAButton = FALSE;
+ }
+}
+
+void Player_actor_move_other_func1(Actor* actor, Game* game) {
+ Player_actor_cancel_request_change_proc_index_by_A_btn(actor);
+ Player_actor_request_main_change_from_submenu(actor, game);
+ Player_actor_request_change_item(game);
+ Player_actor_cancel_request_change_proc_index(actor);
+ Player_actor_change_proc_index(actor, game);
+ Player_actor_Reset_excute_cancel_wade(actor);
+ Player_actor_Set_OldAngle(actor);
+ Player_actor_Culc_player_frame_counter(actor);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD0B8_jp.s")
+void Player_actor_move_other_func2(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD1A8_jp.s")
+ Player_actor_set_eye_PositionAndAngle(actor);
+ Player_actor_sound_SetStatus(actor);
+ Player_actor_Set_Indoor_Camera_Index(actor, game);
+ Player_actor_check_forward(actor, game);
+ mFI_SetPlayerWade(game);
+ Player_actor_check_little_shake_tree(actor, game);
+ Player_actor_check_shake_tree_timer(actor);
+ Player_actor_check_pitfall(actor, game);
+ Player_actor_set_ripple(actor, game);
+
+ PLAYERREG(87) = player->nowMainIndex;
+ PLAYERREG(88) = player->unk_0D04;
+ PLAYERREG(89) = actor->world.rot.y;
+ PLAYERREG(90) = actor->shape.rot.y;
+ PLAYERREG(91) = actor->world.pos.x;
+ PLAYERREG(92) = actor->world.pos.y;
+ PLAYERREG(93) = actor->world.pos.z;
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD218_jp.s")
+void Player_actor_draw_other_func2(Actor* actor, Game* game) {
+ Player_actor_SetPosition_OBJtoLine_forItem(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD320_jp.s")
+void Player_actor_change_main_index_other_func1(UNUSED Actor* actor, UNUSED Game* game) {
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD340_jp.s")
+void Player_actor_change_main_index_other_func2(UNUSED Actor* actor, UNUSED Game* game) {
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD350_jp.s")
+void Player_actor_settle_main_other_func2(Actor* actor, Game* game) {
+ Player_actor_SetFootMark_for_settle_main(actor, game);
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD360_jp.s")
+void Player_actor_SetActorUki(Actor* actor, Game* game) {
+ Player* player = (Player*)actor;
+ Game_Play* play = (Game_Play*)game;
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD380_jp.s")
+ if (Player_actor_CheckScene_AbleOutItem(common_data.save.sceneNo) != FALSE && player->fishingRodActor == NULL) {
+ player->fishingRodActor = Actor_info_name_search(&play->actorInfo, ACTOR_UKI, ACTOR_PART_4);
+ }
+}
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD3D8_jp.s")
+void Player_actor_Item_main_other_func1(Actor* actor, Game* game) {
+ Player_actor_SetActorUki(actor, game);
+}
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808BD3F8_jp.s")
@@ -3063,15 +3469,16 @@ f32 Player_actor_GetController_old_recognize_percentR() {
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_dt.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808DD874_jp.s")
+// clang-format off
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_main_change_from_submenu.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808DD8F0_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_request_change_item.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808DD9B4_jp.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808DDA18_jp.s")
-#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/func_808DDB34_jp.s")
+#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_change_proc_index.s")
#pragma GLOBAL_ASM("asm/jp/nonmatchings/overlays/actors/player_actor/m_player/Player_actor_move.s")
diff --git a/src/overlays/actors/player_actor/m_player.h b/src/overlays/actors/player_actor/m_player.h
index 43fe690..1ce84a7 100644
--- a/src/overlays/actors/player_actor/m_player.h
+++ b/src/overlays/actors/player_actor/m_player.h
@@ -6,11 +6,25 @@
#include "m_collision_obj.h"
#include "m_controller.h"
#include "unk.h"
+#include "c_keyframe.h"
struct Game;
struct Game_Play;
struct Player;
+typedef enum Player_StatusLevel {
+ Player_WAIT,
+ Player_WALK,
+ Player_RUN,
+ Player_DASH
+} Player_StatusLevel;
+
+typedef enum Player_MainIndex {
+ Player_INDEX_SITDOWN = 0x22,
+ Player_INDEX_SWING_AXE = 0x25,
+ Player_INDEX_REFLECT_AXE = 0x27,
+} Player_MainIndex;
+
typedef enum Player_ItemKind {
Player_ITEM_KIND_START,
Player_ITEM_KIND_AXE = Player_ITEM_KIND_START,
@@ -69,6 +83,46 @@ typedef struct PlayerControllerData {
/* 0x3C */ u16 equippedItem;
} PlayerControllerData; // size = 0x40;
+typedef struct Player_MainWade {
+ s32 dir;
+ xyz_t startPos;
+ xyz_t endPos;
+ f32 timer;
+} Player_MainWade;
+
+typedef struct Player_MainSitdown {
+ s32 ftrIdx;
+} Player_MainSitdown;
+
+typedef struct Player_MainCommonAxe {
+ /* 0x00 */ xyz_t target;
+ /* 0x0C */ u16 item;
+ /* 0x0E */ u16 damage;
+} Player_MainCommonAxe;
+
+typedef struct Player_MainSwingAxe {
+ /* 0x00 */ Player_MainCommonAxe axeCommon;
+ /* 0x10 */ s32 treeUtX;
+ /* 0x14 */ s32 treeUtZ;
+ /* 0x18 */ s32 beeFlag;
+ /* 0x1C */ s16 beeAngle;
+ /* 0x20 */ s32 beeCounter;
+} Player_MainSwingAxe;
+
+typedef struct Player_MainReflectAxe {
+ /* 0x00 */ Player_MainCommonAxe axeCommon;
+ /* 0x10 */ Actor* reflectActor;
+} Player_MainReflectAxe;
+
+
+typedef union Player_MainIndexData {
+ Player_MainWade wade;
+ Player_MainSitdown sitdown;
+ Player_MainSwingAxe swingAxe;
+ Player_MainReflectAxe reflectAxe;
+ u8 forceAlignment[72];
+} Player_MainIndexData;
+
typedef void (*PlayerUnk1230Func)(struct Player*, struct Game_Play*, Actor*, s32, xyz_t*, f32);
typedef f32 (*PlayerUnk1234Func)(struct Player*, struct Game_Play*);
typedef void (*PlayerUnk1238Func)(struct Player*, struct Game_Play*, Actor*, s32);
@@ -76,14 +130,17 @@ typedef s32 (*SetMgrGetEndPosProc)(struct Game*, xyz_t*);
typedef struct Player {
/* 0x0000 */ Actor actor;
- /* 0x0174 */ UNK_TYPE1 unk_0174[0xB7C];
- /* 0x0CF0*/ s32 unk_0CF0;
- /* 0x0CF4*/ s32 unk_0CF4;
+ /* 0x0174 */ SkeletonInfoR skeletonInfo0;
+ /* 0x01E4 */ UNK_TYPE1 unk_01E4[0xB0C];
+ /* 0x0CF0*/ s32 nowMainIndex;
+ /* 0x0CF4*/ s32 unk_0CF4;
/* 0x0CF8 */ UNK_TYPE1 unk_0CF8[0x8];
/* 0x0D00 */ s32 unk_0D00;
/* 0x0D04 */ s32 unk_0D04;
/* 0x0D08 */ s32 unk_0D08;
- /* 0x0D0C */ UNK_TYPE1 unk_0D0C[0xA0];
+ /* 0x0D0C */ UNK_TYPE1 unk_0D0C[0x4];
+ /* 0x0D10 */ Player_MainIndexData mainIndexData;
+ /* 0x0D58 */ UNK_TYPE1 unk_0D58[0x54];
/* 0x0DAC */ UNK_TYPE unk_0DAC;
/* 0x0DB0 */ UNK_TYPE unk_0DB0;
/* 0x0DB4 */ UNK_TYPE1 unk_0DB4[0x8];
@@ -91,7 +148,11 @@ typedef struct Player {
/* 0x0DC4 */ UNK_TYPE1 unk_0DC4[0x18];
/* 0x0DDC */ UNK_TYPE unk_0DDC[2];
/* 0x0DE4 */ UNK_TYPE unk_0DE4[2];
- /* 0x0DEC */ UNK_TYPE1 unk_0DEC[0x160];
+ /* 0x0DEC */ UNK_TYPE1 unk_0DEC[0x44];
+ /* 0x0E30 */ xyz_t netPos;
+ /* 0x0E3C */ UNK_TYPE1 unk_0E3C[0xEC];
+ /* 0x0F28 */ Actor* fishingRodActor;
+ /* 0x0F2C */ UNK_TYPE1 unk_0F2C[0x20];
/* 0x0F4C */ ClObjTris colliderTris1;
/* 0x0F60 */ UNK_TYPE1 unk_0F60[0x44];
/* 0x0FA4 */ ClObjTris colliderTris2;
@@ -104,11 +165,13 @@ typedef struct Player {
/* 0x123C */ UNK_TYPE1 unk_123C[0x8];
/* 0x1244 */ SetMgrGetEndPosProc getEndPos;
/* 0x1248 */ UNK_TYPE1 unk_1248[0x70];
- /* 0x12B8 */ UNK_TYPE unk_12B8;
+ /* 0x12B8 */ s32 pressedAButton;
/* 0x12BC */ s32 unk_12BC;
- /* 0x12C0 */ u16 unk_12C0;
+ /* 0x12C0 */ u16 itemInFront;
/* 0x12C2 */ UNK_TYPE1 unk_12C2[0x2];
- /* 0x12C4 */ UNK_TYPE1 unk_12C4[0x14];
+ /* 0x12C4 */ xyz_t forwardUtPos;
+ /* 0x12D0 */ s8 updateSceneBGMode;
+ /* 0x12D1 */ UNK_TYPE1 unk_12D4[0x7];
} Player; // size = 0x12D8
void Player_actor_ct(Actor* thisx, struct Game_Play* game_play);
diff --git a/src/overlays/gamestates/ovl_play/m_play.c b/src/overlays/gamestates/ovl_play/m_play.c
index 8554be5..864f414 100644
--- a/src/overlays/gamestates/ovl_play/m_play.c
+++ b/src/overlays/gamestates/ovl_play/m_play.c
@@ -254,7 +254,7 @@ void Game_play_fbdemo_wipe_move(Game_Play* game_play) {
case 4:
case 6:
if (S_back_title_timer == 300) {
- mBGMPsComp_make_ps_wipe(0x168, game_play);
+ mBGMPsComp_make_ps_wipe(0x168);
}
case 5: