From 467bbb8679f12088bea9e2abe575298ffe49ae42 Mon Sep 17 00:00:00 2001 From: Cuyler36 <24523422+Cuyler36@users.noreply.github.com> Date: Sat, 17 Aug 2024 18:46:02 -0400 Subject: [PATCH] Match m_player_main_wade.c_inc --- include/m_camera2.h | 410 ++++++++++++++++++----------------- include/m_player.h | 19 +- src/m_player_main_wade.c_inc | 127 +++++++++++ 3 files changed, 353 insertions(+), 203 deletions(-) diff --git a/include/m_camera2.h b/include/m_camera2.h index cd45203c..521671a2 100644 --- a/include/m_camera2.h +++ b/include/m_camera2.h @@ -10,321 +10,321 @@ extern "C" { #endif enum { - CAMERA2_PROCESS_STOP, - CAMERA2_PROCESS_NORMAL, - CAMERA2_PROCESS_WADE, - CAMERA2_PROCESS_TALK, - CAMERA2_PROCESS_DEMO, - CAMERA2_PROCESS_ITEM, - CAMERA2_PROCESS_LOCK, - CAMERA2_PROCESS_DOOR, - CAMERA2_PROCESS_SIMPLE, - CAMERA2_PROCESS_CUST_TALK, - CAMERA2_PROCESS_INTER, - CAMERA2_PROCESS_STAFF_ROLL, - CAMERA2_PROCESS_INTER2, + CAMERA2_PROCESS_STOP, + CAMERA2_PROCESS_NORMAL, + CAMERA2_PROCESS_WADE, + CAMERA2_PROCESS_TALK, + CAMERA2_PROCESS_DEMO, + CAMERA2_PROCESS_ITEM, + CAMERA2_PROCESS_LOCK, + CAMERA2_PROCESS_DOOR, + CAMERA2_PROCESS_SIMPLE, + CAMERA2_PROCESS_CUST_TALK, + CAMERA2_PROCESS_INTER, + CAMERA2_PROCESS_STAFF_ROLL, + CAMERA2_PROCESS_INTER2, - CAMERA2_PROCESS_NUM + CAMERA2_PROCESS_NUM }; typedef struct camera_main_cust_talk_s { - ACTOR* speaker_actor; - ACTOR* listener_actor; - f32 center_ratio; - f32 cull_timer; - s16 angle_x; - s16 angle_y; - f32 distance; + ACTOR* speaker_actor; + ACTOR* listener_actor; + f32 center_ratio; + f32 cull_timer; + s16 angle_x; + s16 angle_y; + f32 distance; } CameraCustTalk; typedef struct camera_main_demo_s { - xyz_t starting_center_pos; - f32 starting_distance; - s_xyz starting_direction; + xyz_t starting_center_pos; + f32 starting_distance; + s_xyz starting_direction; - xyz_t goal_center_pos; - f32 goal_distance; - s_xyz goal_direction; + xyz_t goal_center_pos; + f32 goal_distance; + s_xyz goal_direction; - f32 goal_delta; - f32 acceleration_delta; - f32 braking_delta; - f32 now_delta; + f32 goal_delta; + f32 acceleration_delta; + f32 braking_delta; + f32 now_delta; } CameraDemo; typedef struct camera_main_door_s { - u32 flags; - int morph_counter; - xyz_t center_position; + u32 flags; + int morph_counter; + xyz_t center_position; } CameraDoor; typedef struct camera_main_inter_s { - xyz_t starting_center_pos; - xyz_t starting_eye_pos; - - xyz_t goal_center_pos; - xyz_t goal_eye_pos; + xyz_t starting_center_pos; + xyz_t starting_eye_pos; - f32 slope0; - f32 slope1; + xyz_t goal_center_pos; + xyz_t goal_eye_pos; - u32 flags; + f32 slope0; + f32 slope1; - int now_delta; - int max_delta; + u32 flags; - int pad[2]; + int now_delta; + int max_delta; + + int pad[2]; } CameraInter; typedef struct camera_main_item_s { - int type; - f32 cull_timer; + int type; + f32 cull_timer; } CameraItem; typedef struct camera_main_lock_s { - xyz_t center_pos; - xyz_t eye_pos; + xyz_t center_pos; + xyz_t eye_pos; - f32 fov_y; + f32 fov_y; - int morph_counter; + int morph_counter; - f32 near; - f32 far; + f32 near; + f32 far; } CameraLock; typedef struct camera_main_normal_s { - u32 flags; + u32 flags; - int last_indoor_distance_addition_idx; - int last_indoor_direction_addition_idx; + int last_indoor_distance_addition_idx; + int last_indoor_direction_addition_idx; - int morph_counter; + int morph_counter; } CameraNormal; typedef struct camera_main_simple_s { - xyz_t center_pos; - s_xyz angle; - f32 distance; + xyz_t center_pos; + s_xyz angle; + f32 distance; - int morph_counter; - int mode; + int morph_counter; + int mode; - f32 cull_timer; + f32 cull_timer; } CameraSimple; typedef struct camera_main_staff_roll_s { - xyz_t last_center_pos; - xyz_t last_eye_pos; - f32 last_distance; + xyz_t last_center_pos; + xyz_t last_eye_pos; + f32 last_distance; - ACTOR* speaker_actor; - ACTOR* listener_actor; + ACTOR* speaker_actor; + ACTOR* listener_actor; - s16 rotation_y_delta; - s16 r_delta; - s16 rotation_x_delta; + s16 rotation_y_delta; + s16 r_delta; + s16 rotation_x_delta; - u16 flags; - u16 morph_counter; - u16 pad; - u16 dist_counter; - s_xyz last_direction; + u16 flags; + u16 morph_counter; + u16 pad; + u16 dist_counter; + s_xyz last_direction; } CameraStaffRoll; typedef struct camera_main_talk_s { - ACTOR* speaker_actor; - ACTOR* listener_actor; + ACTOR* speaker_actor; + ACTOR* listener_actor; - xyz_t listener_pos; - - f32 cull_timer; - u32 flags; + xyz_t listener_pos; - xyz_t goal_center_pos; + f32 cull_timer; + u32 flags; + + xyz_t goal_center_pos; } CameraTalk; typedef struct camera_main_wade_s { - f32 timer; + f32 timer; - xyz_t start_pos; - xyz_t goal_pos; + xyz_t start_pos; + xyz_t goal_pos; - f32 goal_time; + f32 goal_time; } CameraWade; typedef union camera_main_data_u { - CameraCustTalk cust_talk; - CameraDemo demo; - CameraDoor door; - CameraInter inter; - CameraItem item; - CameraLock lock; - CameraNormal normal; - CameraSimple simple; - CameraStaffRoll staff_roll; - CameraTalk talk; - CameraWade wade; - - u64 align; + CameraCustTalk cust_talk; + CameraDemo demo; + CameraDoor door; + CameraInter inter; + CameraItem item; + CameraLock lock; + CameraNormal normal; + CameraSimple simple; + CameraStaffRoll staff_roll; + CameraTalk talk; + CameraWade wade; + + u64 align; } CameraMainData; /* request index data */ typedef struct camera_request_cust_talk_s { - ACTOR* speaker_actor; - ACTOR* listener_actor; - f32 center_ratio; - s16 angle_x; - s16 angle_y; - f32 distance; + ACTOR* speaker_actor; + ACTOR* listener_actor; + f32 center_ratio; + s16 angle_x; + s16 angle_y; + f32 distance; } CameraRequestCustTalk; typedef struct camera_request_demo_s { - xyz_t starting_center_pos; - f32 starting_distance; - s_xyz starting_direction; + xyz_t starting_center_pos; + f32 starting_distance; + s_xyz starting_direction; - xyz_t goal_center_pos; - f32 goal_distance; - s_xyz goal_direction; + xyz_t goal_center_pos; + f32 goal_distance; + s_xyz goal_direction; - f32 goal_delta; - f32 acceleration_delta; - f32 braking_delta; + f32 goal_delta; + f32 acceleration_delta; + f32 braking_delta; } CameraRequestDemo; typedef struct camera_request_door_s { - ACTOR* door_actor; - u32 flags; + ACTOR* door_actor; + u32 flags; } CameraRequestDoor; typedef struct camera_request_inter_s { - xyz_t starting_center_pos; - xyz_t starting_eye_pos; - - xyz_t goal_center_pos; - xyz_t goal_eye_pos; + xyz_t starting_center_pos; + xyz_t starting_eye_pos; - f32 slope0; - f32 slope1; + xyz_t goal_center_pos; + xyz_t goal_eye_pos; - u32 flags; + f32 slope0; + f32 slope1; - int morph_counter; + u32 flags; - int pad[2]; + int morph_counter; + + int pad[2]; } CameraRequestInter; typedef struct camera_request_item_s { - int type; + int type; } CameraRequestItem; typedef struct camera_request_lock_s { - xyz_t center_pos; - xyz_t eye_pos; + xyz_t center_pos; + xyz_t eye_pos; - f32 fov_y; + f32 fov_y; - int morph_counter; + int morph_counter; - f32 near; - f32 far; + f32 near; + f32 far; } CameraRequestLock; typedef struct camera_request_normal_s { - xyz_t position; + xyz_t position; - int flags; + int flags; } CameraRequestNormal; typedef struct camera_request_simple_s { - xyz_t center_pos; - s_xyz angle; - f32 distance; + xyz_t center_pos; + s_xyz angle; + f32 distance; - int morph_counter; - int mode; + int morph_counter; + int mode; } CameraRequestSimple; typedef struct camera_request_staff_roll_s { - ACTOR* speaker_actor; - ACTOR* listener_actor; + ACTOR* speaker_actor; + ACTOR* listener_actor; } CameraRequestStaffRoll; typedef struct camera_request_talk_s { - ACTOR* speaker_actor; - ACTOR* listener_actor; + ACTOR* speaker_actor; + ACTOR* listener_actor; - xyz_t listener_pos; + xyz_t listener_pos; - u32 flags; + u32 flags; } CameraRequestTalk; typedef struct camera_request_wade_s { - xyz_t goal_pos; - f32 goal_time; + xyz_t goal_pos; + f32 goal_time; } CameraRequestWade; typedef union camera_request_data_u { - CameraRequestCustTalk cust_talk; - CameraRequestDemo demo; - CameraRequestDoor door; - CameraRequestInter inter; - CameraRequestItem item; - CameraRequestLock lock; - CameraRequestNormal normal; - CameraRequestSimple simple; - CameraRequestStaffRoll staff_roll; - CameraRequestTalk talk; - CameraRequestWade wade; - - u64 align; + CameraRequestCustTalk cust_talk; + CameraRequestDemo demo; + CameraRequestDoor door; + CameraRequestInter inter; + CameraRequestItem item; + CameraRequestLock lock; + CameraRequestNormal normal; + CameraRequestSimple simple; + CameraRequestStaffRoll staff_roll; + CameraRequestTalk talk; + CameraRequestWade wade; + + u64 align; } CameraRequestData; typedef struct camera_lookat_s { - xyz_t eye; - xyz_t center; - xyz_t up; + xyz_t eye; + xyz_t center; + xyz_t up; } CameraLookat; typedef struct camera_perspective_s { - f32 fov_y; - f32 aspect_ratio; - f32 near; - f32 far; - f32 scale; + f32 fov_y; + f32 aspect_ratio; + f32 near; + f32 far; + f32 scale; } CameraPerspective; typedef struct camera_s { - CameraLookat lookat; - CameraPerspective perspective; + CameraLookat lookat; + CameraPerspective perspective; - s_xyz direction; /* camera orientation */ - s_xyz direction_velocity; /* camera orentation rate of change */ + s_xyz direction; /* camera orientation */ + s_xyz direction_velocity; /* camera orentation rate of change */ - xyz_t movement_velocity; /* camera world position velocity */ + xyz_t movement_velocity; /* camera world position velocity */ - f32 focus_distance; /* distance to the camera focal point/subject */ - f32 focus_distance_velocity; /* rate of change of the camera focus */ + f32 focus_distance; /* distance to the camera focal point/subject */ + f32 focus_distance_velocity; /* rate of change of the camera focus */ - int indoor_distance_addition_idx; /* index of indoor distance adjustment LUT value to apply */ - int indoor_direction_addition_idx; /* index of indoor direction adjustment LUT value to apply */ + int indoor_distance_addition_idx; /* index of indoor distance adjustment LUT value to apply */ + int indoor_direction_addition_idx; /* index of indoor direction adjustment LUT value to apply */ - int now_main_index; /* current main index type */ - int last_main_index; /* previous main index type */ - int requested_main_index; /* requested main index type */ - int requested_main_index_priority; /* requested main index priority value */ - int requested_main_index_flag; /* TRUE/FALSE requested main index has been set */ + int now_main_index; /* current main index type */ + int last_main_index; /* previous main index type */ + int requested_main_index; /* requested main index type */ + int requested_main_index_priority; /* requested main index priority value */ + int requested_main_index_flag; /* TRUE/FALSE requested main index has been set */ - CameraMainData main_data; /* current main index data */ - CameraRequestData request_data; /* requested index data */ + CameraMainData main_data; /* current main index data */ + CameraRequestData request_data; /* requested index data */ - xyz_t mic_pos; /* mic position */ - u32 flags; /* camera flags */ + xyz_t mic_pos; /* mic position */ + u32 flags; /* camera flags */ - xyz_t offset_eye; - xyz_t offset_center; + xyz_t offset_eye; + xyz_t offset_center; } Camera2; extern s16 getCamera2AngleY(GAME_PLAY* play); @@ -341,24 +341,36 @@ extern int Camera2_request_main_wade(GAME_PLAY* play, xyz_t* pos, int priority, extern int Camera2_request_main_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority); extern int Camera2_request_main_talk_pos(GAME_PLAY* play, ACTOR* speaker, xyz_t* listener_pos, int priority); extern int Camera2_request_main_normal(GAME_PLAY* play, int flags, int priority); -extern int Camera2_request_main_demo(GAME_PLAY* play, const xyz_t* start_center, const f32 start_dist, const s_xyz* start_dir, const xyz_t* goal_center, const f32 goal_dist, const s_xyz* goal_dir, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority); -extern int Camera2_request_main_demo_fromNowPos(GAME_PLAY* play, const xyz_t* goal_center, const s_xyz* goal_dir, const f32 goal_dist, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority); -extern int Camera2_request_main_demo_fromNowPos2(GAME_PLAY* play, const xyz_t* goal_center, const f32 goal_delta, const f32 accel_delta, const f32 braking_delta, const int priority); +extern int Camera2_request_main_demo(GAME_PLAY* play, const xyz_t* start_center, const f32 start_dist, + const s_xyz* start_dir, const xyz_t* goal_center, const f32 goal_dist, + const s_xyz* goal_dir, const f32 goal_delta, const f32 accel_delta, + const f32 braking_delta, const int priority); +extern int Camera2_request_main_demo_fromNowPos(GAME_PLAY* play, const xyz_t* goal_center, const s_xyz* goal_dir, + const f32 goal_dist, const f32 goal_delta, const f32 accel_delta, + const f32 braking_delta, const int priority); +extern int Camera2_request_main_demo_fromNowPos2(GAME_PLAY* play, const xyz_t* goal_center, const f32 goal_delta, + const f32 accel_delta, const f32 braking_delta, const int priority); extern int Camera2_request_main_item(GAME_PLAY* play, int type, int priority); -extern int Camera2_request_main_lock(GAME_PLAY* play, xyz_t* center_pos, xyz_t* eye_pos, f32 fov_y, int morph_counter, f32 near, f32 far, int priority); +extern int Camera2_request_main_lock(GAME_PLAY* play, xyz_t* center_pos, xyz_t* eye_pos, f32 fov_y, int morph_counter, + f32 near, f32 far, int priority); extern int Camera2_request_main_door(GAME_PLAY* play, ACTOR* door_actor, u32 flags, int priority); -extern int Camera2_request_main_simple2(GAME_PLAY* play, xyz_t* center, s_xyz* dir, f32 dist, int morph_counter, int mode, int priority); +extern int Camera2_request_main_simple2(GAME_PLAY* play, xyz_t* center, s_xyz* dir, f32 dist, int morph_counter, + int mode, int priority); extern int Camera2_request_main_simple_kirin(GAME_PLAY* play, const xyz_t* center, int priority); -extern int Camera2_request_main_simple_fishing(GAME_PLAY* play, const xyz_t* player_pos, const xyz_t* bobber_pos, int priority); +extern int Camera2_request_main_simple_fishing(GAME_PLAY* play, const xyz_t* player_pos, const xyz_t* bobber_pos, + int priority); extern int Camera2_request_main_simple_fishing_return(GAME_PLAY* play, xyz_t* player_pos, int priority); -extern int Camera2_request_main_simple(GAME_PLAY* play, xyz_t* pos, s_xyz* dir, f32 dist, int morph_counter, int priority); +extern int Camera2_request_main_simple(GAME_PLAY* play, xyz_t* pos, s_xyz* dir, f32 dist, int morph_counter, + int priority); extern void Camera2_main_Simple_AngleDistStd(GAME_PLAY* play, s_xyz* angle, f32* dist); extern int Camera2_request_main_listen_front_low_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority); extern int Camera2_request_main_needlework_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority); -extern int Camera2_request_main_cust_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, f32 center_ratio, int priority, s16 angle_x, s16 angle_y, f32 distance); +extern int Camera2_request_main_cust_talk(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, f32 center_ratio, + int priority, s16 angle_x, s16 angle_y, f32 distance); extern int Camera2_request_BuySikimono_WallPaper(GAME_PLAY* play, xyz_t* center, xyz_t* eye); extern int Camera2_Inter_set_reverse_mode(GAME_PLAY* play); -extern int Camera2_request_main_inter(GAME_PLAY* play, xyz_t* start_center, xyz_t* start_eye, xyz_t* goal_center, xyz_t* goal_eye, f32 s0, f32 s1, u32 flags, int morph_counter, int priority); +extern int Camera2_request_main_inter(GAME_PLAY* play, xyz_t* start_center, xyz_t* start_eye, xyz_t* goal_center, + xyz_t* goal_eye, f32 s0, f32 s1, u32 flags, int morph_counter, int priority); extern int Camera2_request_main_staff_roll(GAME_PLAY* play, ACTOR* speaker, ACTOR* listener, int priority); extern void Init_Camera2(GAME_PLAY* play); extern void Camera2_process(GAME_PLAY* play); diff --git a/include/m_player.h b/include/m_player.h index 8fe0d25b..c02169eb 100644 --- a/include/m_player.h +++ b/include/m_player.h @@ -28,6 +28,9 @@ typedef struct player_actor_s PLAYER_ACTOR; #define mPlayer_FORCE_POSITION_ANGLE_ROTY (1 << 5) #define mPlayer_FORCE_POSITION_ANGLE_ROTZ (1 << 6) +#define mPlayer_WALK_FLAG_SET_POS (1 << 1) +#define mPlayer_WALK_FLAG_RESET_MORPH (1 << 2) + enum { mPlayer_JOINT_ROOT, mPlayer_JOINT_BASE, @@ -1265,6 +1268,13 @@ typedef struct player_main_return_outdoor2_s { int prev_main_index; } mPlayer_main_return_outdoor2_c; +typedef struct player_main_wade_s { + int dir; + xyz_t start_pos; + xyz_t end_pos; + f32 timer; +} mPlayer_main_wade_c; + typedef struct player_main_pickup_s { xyz_t target_pos; xyz_t item_pos; @@ -1328,6 +1338,7 @@ typedef union { mPlayer_main_return_demo_c return_demo; mPlayer_main_return_outdoor_c return_outdoor; mPlayer_main_return_outdoor2_c return_outdoor2; + mPlayer_main_wade_c wade; mPlayer_main_pickup_c pickup; mPlayer_main_pickup_jump_c pickup_jump; mPlayer_main_get_scoop_c get_scoop; @@ -1535,10 +1546,10 @@ struct player_actor_s { /* 0x13A4 */ s8 update_scene_bg_mode; }; -void Player_actor_ct(PLAYER_ACTOR*, GAME*); -void Player_actor_dt(PLAYER_ACTOR*, GAME*); -void Player_actor_move(PLAYER_ACTOR*, GAME*); -void Player_actor_draw(PLAYER_ACTOR*, GAME*); +extern void Player_actor_ct(ACTOR*, GAME*); +extern void Player_actor_dt(ACTOR*, GAME*); +extern void Player_actor_move(ACTOR*, GAME*); +extern void Player_actor_draw(ACTOR*, GAME*); #ifdef __cplusplus } diff --git a/src/m_player_main_wade.c_inc b/src/m_player_main_wade.c_inc index e69de29b..17b8d1c3 100644 --- a/src/m_player_main_wade.c_inc +++ b/src/m_player_main_wade.c_inc @@ -0,0 +1,127 @@ +static int Player_actor_request_main_wade(GAME* game, int dir, int priority) { + if (Player_actor_check_request_main_able(game, mPlayer_INDEX_WADE, priority)) { + PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game); + mPlayer_request_wade_c* request_wade_p = &player->requested_main_index_data.wade; + + request_wade_p->dir = dir; + Player_actor_request_main_index(game, mPlayer_INDEX_WADE, priority); + return TRUE; + } + + return FALSE; +} + +static int Player_actor_request_main_wade_all(GAME* game, int dir, int priority) { + return Player_actor_request_main_wade(game, dir, priority) != FALSE; +} + +static void Player_actor_setup_main_Wade_common(ACTOR* actorx, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx; + mPlayer_request_wade_c* request_wade_p = &player->requested_main_index_data.wade; + mPlayer_main_wade_c* main_wade_p = &player->main_data.wade; + xyz_t* pos_p; + int anim1_idx; + int part_table_idx; + int dir; + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t eye_pos; + + Player_actor_setup_main_Wade_other_func1(actorx, game); + dir = request_wade_p->dir; + pos_p = &actorx->world.position; + Player_actor_SetupItem_Base1(actorx, 0, -5.0f, &anim1_idx, &part_table_idx); + Player_actor_InitAnimation_Base1(actorx, game, mPlayer_ANIM_WAIT1, anim1_idx, 1.0f, 1.0f, 0.5f, -5.0f, + part_table_idx); + main_wade_p->dir = dir; + main_wade_p->start_pos = *pos_p; + + Player_actor_Culc_wade_end_pos(pos_p, &main_wade_p->end_pos, dir, 18.00001f); + main_wade_p->timer = 0.0f; + Player_actor_setup_main_Base(actorx, game); + + eye_pos = main_wade_p->end_pos; + eye_pos.y += actorx->eye.position.y - pos_p->y; + Camera2_request_main_wade(play, &eye_pos, 9, 36.0f); + Player_actor_setup_main_Wade_other_func2(actorx, game); +} + +static void Player_actor_setup_main_Wade(ACTOR* actorx, GAME* game) { + Player_actor_setup_main_Wade_common(actorx, game); +} + +static void Player_actor_settle_main_Wade(ACTOR* actorx, GAME* game) { + mDemo_End(actorx); +} + +static void Player_actor_CulcAnimation_Wade(ACTOR* actorx) { + f32 last_kf0_current_frame; + + Player_actor_CulcAnimation_Base2(actorx, &last_kf0_current_frame); +} + +static void Player_actor_Movement_Wade(ACTOR* actorx) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx; + mPlayer_main_wade_c* main_wade_p = &player->main_data.wade; + xyz_t* start_pos_p = &main_wade_p->start_pos; + xyz_t* end_pos_p = &main_wade_p->end_pos; + xyz_t* pos_p = &actorx->world.position; + f32 timer = main_wade_p->timer; + f32 percent = get_percent_forAccelBrake(timer, 0.0f, 36.0f, 1.2f, 34.8f); + + pos_p->x = start_pos_p->x + percent * (end_pos_p->x - start_pos_p->x); + pos_p->y = start_pos_p->y + percent * (end_pos_p->y - start_pos_p->y); + pos_p->z = start_pos_p->z + percent * (end_pos_p->z - start_pos_p->z); + + Player_actor_Movement_Base_Stop(actorx, FALSE); +} + +static void Player_actor_ObjCheck_Wade(ACTOR* actorx, GAME* game) { + Player_actor_Excute_Corect_forStand(actorx, game); +} + +static void Player_actor_BGcheck_Wade(ACTOR* actorx) { + Player_actor_BGcheck_common_type2(actorx); +} + +static int Player_actor_able_request_proc_index_fromWade_common(ACTOR* actorx) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx; + mPlayer_main_wade_c* main_wade_p = &player->main_data.wade; + f32* timer_p = &main_wade_p->timer; + + if (*timer_p > 36.0f) { + return TRUE; + } + + *timer_p += 1.0f; + return FALSE; +} + +static void Player_actor_request_proc_index_fromWade(ACTOR* actorx, GAME* game) { + PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx; + mPlayer_main_wade_c* main_wade_p = &player->main_data.wade; + + if (Player_actor_able_request_proc_index_fromWade_common(actorx)) { + Player_actor_SettleRequestMainIndexPriority(actorx); + Player_actor_request_main_walk_all(game, &main_wade_p->end_pos, -5.0f, + mPlayer_WALK_FLAG_SET_POS | mPlayer_WALK_FLAG_RESET_MORPH, 1); + } +} + +static int Player_actor_Request_Wade(ACTOR* actorx) { + return TRUE; +} + +static void Player_actor_main_Wade(ACTOR* actorx, GAME* game) { + if (Player_actor_Request_Wade(actorx)) { + Player_actor_main_Wade_other_func1(actorx, game); + Player_actor_Movement_Wade(actorx); + Player_actor_Reinput_force_position_angle(actorx, game); + Player_actor_CulcAnimation_Wade(actorx); + Player_actor_recover_lean_angle(actorx); + Player_actor_set_eye_pattern_normal(actorx); + Player_actor_ObjCheck_Wade(actorx, game); + Player_actor_BGcheck_Wade(actorx); + Player_actor_Item_main(actorx, game); + Player_actor_request_proc_index_fromWade(actorx, game); + } +}