mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-13 03:29:19 -04:00
Match m_player_main_wade.c_inc
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user