From d2361dede58701e6255f012317de4484414f96da Mon Sep 17 00:00:00 2001 From: Prakxo Date: Mon, 19 Aug 2024 23:37:11 +0200 Subject: [PATCH] Match m_player_other_func.c_inc --- src/m_player_other_func.c_inc | 308 ++++++++++++++++++++++++++++++++++ 1 file changed, 308 insertions(+) diff --git a/src/m_player_other_func.c_inc b/src/m_player_other_func.c_inc index e69de29b..49fc6727 100644 --- a/src/m_player_other_func.c_inc +++ b/src/m_player_other_func.c_inc @@ -0,0 +1,308 @@ + +void Player_actor_ct_other_func1(ACTOR* actor, GAME* game) { + GAME_PLAY* play = (GAME_PLAY*)game; + + play->submenu.disable_start_btn_flag = TRUE; + actor->unknown_b4 = 1; + + Actor_info_make_actor(&play->actor_info, game, mAc_PROFILE_FIELD_DRAW, actor->world.position.x, + actor->world.position.y, actor->world.position.z, 0, 0, 0, -1, -1, + -1, EMPTY_NO, -1, -1, -1); +} + +void Player_actor_setup_main_Wade_other_func1(ACTOR* actor, GAME* game) { + GAME_PLAY* play = (GAME_PLAY*)game; + + play->object_exchange._1954 = TRUE; +} + +void Player_actor_setup_main_Wade_snowball_other_func1(ACTOR* actor, GAME* game) { + Player_actor_setup_main_Wade_other_func1(actor, game); +} + +void Player_actor_setup_main_Wade_other_func2(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t pos = player->main_data.wade.end_pos; + + mFI_SetBearActor(play, pos, TRUE); + + Common_Set(in_initial_block, FALSE); +} + +void Player_actor_setup_main_Wade_snowball_other_func2(ACTOR* actor, GAME* game) { + Player_actor_setup_main_Wade_other_func2(actor, game); +} + +void Player_actor_setup_main_Demo_wade_other_func2(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t pos = player->main_data.wade.end_pos; + + mFI_SetBearActor(play, pos, TRUE); + + Common_Set(in_initial_block, FALSE); +} + +void Player_actor_setup_main_Demo_geton_boat_wade_other_func2(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t pos = player->main_data.wade.end_pos; + + mFI_SetBearActor(play, pos, TRUE); + + Common_Set(in_initial_block, FALSE); +} + +void Player_actor_ChangeFace_for_Wade(ACTOR* actor, GAME* game, f32 timer) { + if (18.0f <= timer && timer < 19.0f) { + int rank = 0; + + rank |= Player_actor_Set_player_sunburn_rankup(actor); + rank |= Player_actor_Set_player_sunburn_rankdown(actor); + + if (rank != 0) { + mPlib_change_player_face_pallet(game); + } + } +} + +void Player_actor_main_Wade_other_func1(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + + Player_actor_ChangeFace_for_Wade(actor, game, player->main_data.wade.timer); +} + +void Player_actor_main_Demo_wade_other_func1(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + + Player_actor_ChangeFace_for_Wade(actor, game, player->main_data.wade.timer); +} + +void Player_actor_main_Wade_snowball_other_func1(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + + Player_actor_ChangeFace_for_Wade(actor, game, player->main_data.wade.timer); +} + +void Player_actor_main_Demo_geton_boat_wade_other_func1(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + + Player_actor_ChangeFace_for_Wade(actor, game, player->main_data.wade.timer); +} + +void Player_actor_main_Sitdown_wait_other_func2(ACTOR* actor) { + if (Common_Get(clip.my_room_clip)) { + Common_Get(clip.my_room_clip)->call_sit_down_ongen_pos_se_proc(&actor->world.position); + } +} + +void Player_actor_main_Relax_rod_other_func2(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + Player_actor_request_camera2_main_simple_fishing(actor, game); +} + +void Player_actor_main_Vib_rod_other_func2(ACTOR* actor, GAME* game) { + Player_actor_request_camera2_main_simple_fishing(actor, game); +} + +void Player_actor_main_Collect_rod_other_func2(ACTOR* actor, GAME* game) { + Player_actor_request_camera2_main_simple_return(actor, game); +} + +void Player_actor_main_Fly_rod_other_func2(ACTOR* actor, GAME* game) { + Player_actor_request_camera2_main_simple_return(actor, game); +} + +void Player_actor_settle_main_Collect_rod_other_func2(ACTOR* actor, GAME* game) { + Player_actor_request_camera2_main_normal(game); +} + +void Player_actor_settle_main_Fly_rod_other_func2(ACTOR* actor, GAME* game) { + Player_actor_request_camera2_change_priority(game); +} + +void Player_actor_set_nextgoto_info_type0(ACTOR* actor) { + GAME_PLAY* play = (GAME_PLAY*)gamePT; + PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play); + + if (goto_other_scene(play, Common_GetPointer(structure_exit_door_data), TRUE) != TRUE) { + mDemo_End(actor); + } else { + aMR_SaveWaltzTempo2(); + mBGMPsComp_make_ps_wipe(0x195); + } + player->update_scene_bg_mode = TRUE; +} + +void Player_actor_set_nextgoto_info_type1(ACTOR* actor) { + GAME_PLAY* play = (GAME_PLAY*)gamePT; + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + + if (goto_next_scene(play, player->item_in_front - DOOR_START, TRUE) != TRUE) { + mDemo_End(actor); + } else { + int scene = Common_Get(door_data).next_scene_id - 1; + + if (scene == SCENE_DEPART_2 || scene == SCENE_MUSEUM_ENTRANCE || scene == SCENE_MUSEUM_ROOM_PAINTING || + scene == SCENE_MUSEUM_ROOM_FOSSIL || scene == SCENE_MUSEUM_ROOM_INSECT || scene == SCENE_MUSEUM_ROOM_FISH) { + play->fb_fade_type = 12; + mBGMForce_room_nonstop_start(); + } else { + mBGMPsComp_make_ps_wipe(0x249); + } + } +} + +int Player_actor_check_bg_for_next_goto(ACTOR* actor, mActor_name_t door) { + mCoBG_Collision_u* col; + + if (mFI_GET_TYPE(mFI_GetFieldId()) == mFI_FIELD_PLAYER0_ROOM) { + if (door >= DOOR_START && door < EXIT_DOOR) { + col = mFI_GetUnitCol(actor->world.position); + if (col->data.center != col->data.top_left || col->data.center != col->data.bot_left || + col->data.center != col->data.top_right || col->data.center != col->data.bot_right) { + return TRUE; + } + return FALSE; + } + return TRUE; + } + return TRUE; +} + +void Player_actor_check_nextgoto(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + mActor_name_t door = player->item_in_front; + + if (ITEM_NAME_GET_TYPE(door) == NAME_TYPE_WARP && Player_actor_check_bg_for_next_goto(actor, door) != FALSE && + mEv_CheckTitleDemo() <= 0 && play->fb_wipe_mode == 0) { + if (door >= EXIT_DOOR && door < EXIT_DOOR1) { + mDemo_Request(mDemo_TYPE_EXITSCENE, actor, Player_actor_set_nextgoto_info_type0); + + if (player->update_scene_bg_mode != FALSE) { + mBGMPsComp_scene_mode(0xE); + player->update_scene_bg_mode = FALSE; + } + } else if (door >= DOOR_START && door < EXIT_DOOR) { + if ((mFI_GetUnitCol(actor->world.position)->data.center != + mFI_GetUnitCol(actor->world.position)->data.top_left || + mFI_GetUnitCol(actor->world.position)->data.center != + mFI_GetUnitCol(actor->world.position)->data.bot_left || + mFI_GetUnitCol(actor->world.position)->data.center != + mFI_GetUnitCol(actor->world.position)->data.top_right || + mFI_GetUnitCol(actor->world.position)->data.center != + mFI_GetUnitCol(actor->world.position)->data.bot_right) && + mFI_GET_TYPE(mFI_GetFieldId()) == mFI_FIELD_PLAYER0_ROOM) { + aMR_SaveWaltzTempo2(); + mBGMPsComp_make_ps_wipe(0x10E); + } + mDemo_Request(mDemo_TYPE_EXITSCENE, actor, Player_actor_set_nextgoto_info_type1); + } + } +} + +void Player_actor_check_forward(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + s16 rot = actor->shape_info.rotation.y; + xyz_t pos; + mActor_name_t* item; + + pos.x = actor->world.position.x + 0.0006f * sins(rot); + pos.z = actor->world.position.z + 0.0006f * coss(rot); + pos.y = 0.0f; + + pos.y = mCoBG_GetBgY_OnlyCenter_FromWpos(pos, 0.0f); + + item = mFI_GetUnitFG(pos); + + player->forward_ut_pos.x = pos.x; + player->forward_ut_pos.z = pos.z; + player->forward_ut_pos.y = pos.y; + + if (item != NULL) { + player->item_in_front = *item; + } else { + player->item_in_front = EMPTY_NO; + } + + Player_actor_check_nextgoto(actor, game); + + if (chkTrigger(BUTTON_A)) { + player->a_btn_pressed = TRUE; + } else { + player->a_btn_pressed = 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); + Player_actor_Check_player_sunburn_ChangeDay(); + Player_actor_Check_player_sunburn_for_main(actor); + Player_actor_Check_player_change_color_for_main(actor); +} + +void Player_actor_move_other_func2(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + + 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(play); + 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); + + SETREG(PLAYERREG, 87, player->now_main_index); + SETREG(PLAYERREG, 88, player->requested_main_index_priority); + SETREG(PLAYERREG, 89, actor->world.angle.y); + SETREG(PLAYERREG, 90, actor->shape_info.rotation.y); + SETREG(PLAYERREG, 91, actor->world.position.x); + SETREG(PLAYERREG, 92, actor->world.position.y); + SETREG(PLAYERREG, 93, actor->world.position.z); + + Player_actor_Set_old_sound_frame_counter(actor); +} + +void Player_actor_draw_other_func2(ACTOR* actor, GAME* game) { + Player_actor_SetPosition_OBJtoLine_forItem(actor, game); +} + +void Player_actor_change_main_index_other_func1(ACTOR* actor, GAME* game) { +} + +void Player_actor_change_main_index_other_func2(ACTOR* actor, GAME* game) { +} + +void Player_actor_settle_main_other_func2(ACTOR* actor, GAME* game) { + Player_actor_SetFootMark_for_settle_main(actor, game); +} + +void Player_actor_SetActorUki(ACTOR* actor, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor; + GAME_PLAY* play = (GAME_PLAY*)game; + + if (Player_actor_CheckScene_AbleOutItem(Save_Get(scene_no)) != FALSE && player->fishing_rod_actor_p == NULL) { + player->fishing_rod_actor_p = Actor_info_name_search(&play->actor_info, mAc_PROFILE_UKI, ACTOR_PART_BG); + } +} + +void Player_actor_Item_main_other_func1(ACTOR* actor, GAME* game) { + Player_actor_SetActorUki(actor, game); +} + +void Player_actor_setup_main_Demo_geton_boat_other_func2(ACTOR* actor, GAME* game) { + Common_Set(_2DBA6, 0); +}