mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-07-03 19:10:21 -04:00
match m_player_main_slip_net
This commit is contained in:
+7
-2
@@ -1603,9 +1603,13 @@ typedef struct player_main_broken_axe_s {
|
||||
int _2C;
|
||||
} mPlayer_main_broken_axe_c;
|
||||
|
||||
typedef struct player_main_slip_net_s {
|
||||
f32 _00;
|
||||
} mPlayer_main_slip_net_c;
|
||||
|
||||
typedef struct player_main_relax_rod_s {
|
||||
int bee_flag;
|
||||
int mosquito_flag
|
||||
int mosquito_flag;
|
||||
} mPlayer_main_relax_rod_c;
|
||||
|
||||
typedef struct player_main_dig_scoop_s {
|
||||
@@ -1773,7 +1777,7 @@ typedef struct player_main_knock_door_s {
|
||||
mPlayer_request_knock_door_c request_data;
|
||||
} mPlayer_main_knock_door_c;
|
||||
|
||||
typedef struct player_main_change_cloth_s {
|
||||
typedef struct player_main_change_netcloth_s {
|
||||
ACTOR* talk_actor;
|
||||
int turn_flag;
|
||||
int prev_main_index;
|
||||
@@ -1878,6 +1882,7 @@ typedef union {
|
||||
mPlayer_main_reflect_axe_c reflect_axe;
|
||||
mPlayer_main_broken_axe_c broken_axe;
|
||||
mPlayer_main_swing_net_c swing_net;
|
||||
mPlayer_main_slip_net_c slip_net;
|
||||
mPlayer_main_relax_rod_c relax_rod;
|
||||
mPlayer_main_dig_scoop_c dig_scoop;
|
||||
mPlayer_main_fill_scoop_c fill_scoop;
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
static int Player_actor_request_main_slip_net(GAME* game, int priority) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_SLIP_NET, priority)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
s8 item = Player_actor_Get_ItemKind(&player->actor_class, player->now_main_index);
|
||||
int net = FALSE;
|
||||
|
||||
if (mPlayer_ITEM_IS_NET(item)) {
|
||||
net = TRUE;
|
||||
}
|
||||
|
||||
if (net != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_SLIP_NET, priority);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Slip_net(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
|
||||
mPlayer_main_slip_net_c* main_net = &player->main_data.slip_net;
|
||||
|
||||
main_net->_00 = 0.0f;
|
||||
|
||||
Player_actor_SetupItem_Base1(actor, mPlayer_ANIM_KAMAE_SLIP_M1, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_KAMAE_SLIP_M1, mPlayer_ANIM_KAMAE_SLIP_M1, 1.0f, 1.0f,
|
||||
0.5f, -5.0f, 0);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
Player_actor_sound_slip(actor);
|
||||
|
||||
Common_Get(clip).effect_clip->effect_make_proc(eEC_EFFECT_TURN_ASIMOTO, actor->world.position, 2,
|
||||
actor->world.angle.y, game, RSV_NO,
|
||||
actor->bg_collision_check.result.unit_attribute, 1);
|
||||
}
|
||||
|
||||
static void Player_actor_Set_FootMark(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
Common_Get(clip).effect_clip->effect_make_proc(eEC_EFFECT_SLIP_FOOTPRINT, player->right_foot_pos, 2,
|
||||
actor->world.angle.y, game, RSV_NO,
|
||||
actor->bg_collision_check.result.unit_attribute, 0);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Slip_net(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Set_FootMark(actor, game);
|
||||
}
|
||||
|
||||
static int Player_actor_Movement_Slip_net(ACTOR* actor) {
|
||||
return Player_actor_Movement_Base_Braking_common(actor, 0.23925f);
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Slip_net(ACTOR* actor) {
|
||||
f32 frame_calc;
|
||||
|
||||
return Player_actor_CulcAnimation_Base2(actor, &frame_calc);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Slip_net(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Slip_net(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Slip_net(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
mPlayer_main_slip_net_c* main_net = &player->main_data.slip_net;
|
||||
int arg;
|
||||
|
||||
main_net->_00 += 0.5f;
|
||||
|
||||
if (main_net->_00 > 1000.0f) {
|
||||
main_net->_00 = 1000.0f;
|
||||
}
|
||||
|
||||
arg = (int)main_net->_00;
|
||||
|
||||
if (!(arg & 1)) {
|
||||
Common_Get(clip).effect_clip->effect_make_proc(eEC_EFFECT_SLIP, actor->world.position, 2, actor->world.angle.y,
|
||||
game, RSV_NO, actor->bg_collision_check.result.unit_attribute,
|
||||
arg);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromSlip_net(ACTOR* actor, GAME* game, int arg) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
s8 item = Player_actor_Get_ItemKind(actor, player->now_main_index);
|
||||
|
||||
int net = FALSE;
|
||||
|
||||
if (mPlayer_ITEM_IS_NET(item)) {
|
||||
net = TRUE;
|
||||
}
|
||||
|
||||
if (net == FALSE) {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_34);
|
||||
} else if (!Player_actor_CheckController_forNet(game)) {
|
||||
Player_actor_request_main_swing_net(game, mPlayer_REQUEST_PRIORITY_22);
|
||||
} else if (arg != 0) {
|
||||
Player_actor_request_main_ready_net(game, mPlayer_REQUEST_PRIORITY_13);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Slip_net(ACTOR* actor, GAME* game) {
|
||||
int arg = Player_actor_Movement_Slip_net(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Slip_net(actor);
|
||||
Player_actor_SearchAnimation_Slip_net(actor, game);
|
||||
Player_actor_recover_lean_angle(actor);
|
||||
Player_actor_set_eye_pattern_normal(actor);
|
||||
Player_actor_ObjCheck_Slip_net(actor, game);
|
||||
Player_actor_BGcheck_Slip_net(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromSlip_net(actor, game, arg);
|
||||
}
|
||||
|
||||
@@ -262,7 +262,9 @@ static void Player_actor_ObjCheck_Swing_axe(ACTOR* actor, GAME* game, int) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Swing_axe(ACTOR* actor, int) { Player_actor_BGcheck_common_type1(actor); }
|
||||
static void Player_actor_BGcheck_Swing_axe(ACTOR* actor, int) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromSwing_axe(ACTOR* actor, GAME* game, int arg, int arg2) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
Reference in New Issue
Block a user