match m_player_main_slip_net

This commit is contained in:
Prakxo
2024-09-07 22:35:08 +02:00
parent 20c4628c78
commit f563b93034
3 changed files with 132 additions and 3 deletions
+7 -2
View File
@@ -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;
+122
View File
@@ -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);
}
+3 -1
View File
@@ -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;