diff options
| author | Prakxo <87568477+Prakxo@users.noreply.github.com> | 2024-09-27 19:26:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-27 10:26:30 -0700 |
| commit | 8f359e10f09c51a45c7d45a7e6b91ead5fe05206 (patch) | |
| tree | b03731bed251363fc16cbcf58920af18843d88b4 | |
| parent | 5db5ae72018aaab568ecd9da5fb632c58db44683 (diff) | |
m_player audio and other_func functions (#218)
* m_player_sound
* m_player_other_func
* format
| -rw-r--r-- | include/67E840.h | 4 | ||||
| -rw-r--r-- | include/69E2C0.h | 2 | ||||
| -rw-r--r-- | include/audio.h | 4 | ||||
| -rw-r--r-- | include/m_actor.h | 2 | ||||
| -rw-r--r-- | include/m_clip.h | 6 | ||||
| -rw-r--r-- | include/m_common_data.h | 6 | ||||
| -rw-r--r-- | include/m_field_info.h | 3 | ||||
| -rw-r--r-- | include/m_player_lib.h | 2 | ||||
| -rw-r--r-- | linker_scripts/jp/symbol_addrs_code.txt | 8 | ||||
| -rw-r--r-- | linker_scripts/jp/symbol_addrs_overlays.txt | 192 | ||||
| -rw-r--r-- | src/code/audio.c | 4 | ||||
| -rw-r--r-- | src/code/m_field_info.c | 2 | ||||
| -rw-r--r-- | src/code/m_kankyo.c | 2 | ||||
| -rw-r--r-- | src/code/m_submenu.c | 10 | ||||
| -rw-r--r-- | src/overlays/actors/ovl_Bee/ac_bee.c | 2 | ||||
| -rw-r--r-- | src/overlays/actors/player_actor/m_player.c | 615 | ||||
| -rw-r--r-- | src/overlays/actors/player_actor/m_player.h | 79 | ||||
| -rw-r--r-- | src/overlays/gamestates/ovl_play/m_play.c | 2 |
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: |
