mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-31 00:45:27 -04:00
More player states
This commit is contained in:
+3
-1
@@ -8,6 +8,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern int aSIGN_set_white_sign(GAME* game, const xyz_t* pos_p);
|
||||
extern int aSIGN_erase_white_sign(GAME* game, const xyz_t* pos_p);
|
||||
|
||||
extern ACTOR_PROFILE Ac_Sign_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +18,3 @@ extern ACTOR_PROFILE Ac_Sign_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+35
-9
@@ -995,26 +995,27 @@ typedef struct player_request_standup_bed_s {
|
||||
typedef struct player_request_pickup_s {
|
||||
int inv_slot;
|
||||
mActor_name_t item;
|
||||
xyz_t end_pos;
|
||||
xyz_t start_pos;
|
||||
xyz_t target_pos;
|
||||
xyz_t item_pos;
|
||||
int flag;
|
||||
} mPlayer_request_pickup_c;
|
||||
|
||||
typedef struct player_request_pickup_jump_s {
|
||||
int inv_slot;
|
||||
mActor_name_t item;
|
||||
xyz_t start_pos;
|
||||
int flag;
|
||||
xyz_t item_pos;
|
||||
int ftr_flag;
|
||||
int knife_and_fork_flag;
|
||||
} mPlayer_request_pickup_jump_c;
|
||||
|
||||
typedef struct player_request_pickup_furniture_s {
|
||||
int inv_slot;
|
||||
mActor_name_t item;
|
||||
xyz_t start_pos;
|
||||
xyz_t item_pos;
|
||||
} mPlayer_request_pickup_furniture_c;
|
||||
|
||||
typedef struct player_request_pickup_exchange_s {
|
||||
xyz_t end_pos;
|
||||
xyz_t target_pos;
|
||||
mActor_name_t item;
|
||||
} mPlayer_request_pickup_exchange_c;
|
||||
|
||||
@@ -1171,8 +1172,8 @@ typedef struct player_request_ready_pitfall_s {
|
||||
} mPlayer_request_ready_pitfall_c;
|
||||
|
||||
typedef struct player_request_remove_grass_s {
|
||||
xyz_t start_pos;
|
||||
xyz_t end_pos;
|
||||
xyz_t grass_pos;
|
||||
xyz_t target_pos;
|
||||
} mPlayer_request_remove_grass_c;
|
||||
|
||||
typedef struct player_request_change_cloth_s {
|
||||
@@ -1481,8 +1482,8 @@ typedef struct player_main_pickup_s {
|
||||
f32 scale;
|
||||
f32 timer;
|
||||
mActor_name_t item;
|
||||
int ftr_flag;
|
||||
int exchange_flag;
|
||||
int signboard_flag;
|
||||
} mPlayer_main_pickup_c;
|
||||
|
||||
typedef struct player_main_pickup_jump_s {
|
||||
@@ -1491,9 +1492,26 @@ typedef struct player_main_pickup_jump_s {
|
||||
xyz_t item_offset;
|
||||
f32 scale;
|
||||
mActor_name_t item;
|
||||
int ftr_flag;
|
||||
int exchange_flag;
|
||||
} mPlayer_main_pickup_jump_c;
|
||||
|
||||
typedef struct player_main_pickup_furniture_s {
|
||||
xyz_t target_pos;
|
||||
xyz_t item_pos;
|
||||
xyz_t item_offset;
|
||||
f32 scale;
|
||||
mActor_name_t item;
|
||||
int exchange_flag;
|
||||
} mPlayer_main_pickup_furniture_c;
|
||||
|
||||
typedef struct player_main_pickup_exchange_s {
|
||||
xyz_t target_pos;
|
||||
mActor_name_t item;
|
||||
int msg_mode;
|
||||
int submenu_flag;
|
||||
} mPlayer_main_pickup_exchange_c;
|
||||
|
||||
typedef struct player_main_swing_axe_s {
|
||||
/* 0x00 */ xyz_t target_pos;
|
||||
/* 0x0C */ mActor_name_t item;
|
||||
@@ -1658,6 +1676,11 @@ typedef struct player_main_stung_bee_s {
|
||||
f32 timer;
|
||||
} mPlayer_main_stung_bee_c;
|
||||
|
||||
typedef struct player_main_remove_grass_s {
|
||||
xyz_t grass_pos;
|
||||
xyz_t target_pos;
|
||||
} mPlayer_main_remove_grass_c;
|
||||
|
||||
typedef struct player_main_push_snowball_s {
|
||||
u32 label;
|
||||
} mPlayer_main_push_snowball_c;
|
||||
@@ -1706,6 +1729,8 @@ typedef union {
|
||||
mPlayer_main_wade_c wade;
|
||||
mPlayer_main_pickup_c pickup;
|
||||
mPlayer_main_pickup_jump_c pickup_jump;
|
||||
mPlayer_main_pickup_furniture_c pickup_furniture;
|
||||
mPlayer_main_pickup_exchange_c pickup_exchange;
|
||||
mPlayer_main_swing_axe_c swing_axe;
|
||||
mPlayer_main_reflect_axe_c reflect_axe;
|
||||
mPlayer_main_broken_axe_c broken_axe;
|
||||
@@ -1729,6 +1754,7 @@ typedef union {
|
||||
mPlayer_main_wash_car_c wash_car;
|
||||
mPlayer_main_shake_tree_c shake_tree;
|
||||
mPlayer_main_stung_bee_c stung_bee;
|
||||
mPlayer_main_remove_grass_c remove_grass;
|
||||
mPlayer_main_push_snowball_c push_snowball;
|
||||
mPlayer_main_wade_snowball_c wade_snowball;
|
||||
mPlayer_main_demo_geton_boat_wade_c demo_geton_boat_wade;
|
||||
|
||||
+94
-5
@@ -12,6 +12,9 @@
|
||||
#include "ac_insect.h"
|
||||
#include "ac_set_ovl_insect.h"
|
||||
#include "m_house.h"
|
||||
#include "ac_sign.h"
|
||||
#include "m_msg.h"
|
||||
#include "m_choice.h"
|
||||
|
||||
/* Static function declarations, add as needed for intellisense */
|
||||
static int Player_actor_check_request_main_able(GAME* game, int request_main_index, int priority);
|
||||
@@ -59,12 +62,98 @@ static void Player_actor_Set_now_item_main_index(ACTOR* actorx, int item_main_in
|
||||
static void Player_actor_SetEffect_forTakeout_item(ACTOR* actorx, GAME* game);
|
||||
static void Player_actor_Set_FootMark_Base1(ACTOR* actorx, GAME* game, int disable_effect, int disable_sound);
|
||||
static s8 Player_actor_Get_ItemKind_from_submenu(void);
|
||||
static int Player_actor_Set_shake_tree_table(ACTOR* actorx, GAME* game, mActor_name_t item, int tree_ut_x,
|
||||
int tree_ut_z, int little_flag);
|
||||
static int Player_actor_Check_BirthBee_common(ACTOR* actorx, mActor_name_t item, int tree_ut_x, int tree_ut_z,
|
||||
s16* angle_y_p);
|
||||
static void Player_actor_Set_status_for_bee(ACTOR* actorx, s8 v);
|
||||
static int Player_actor_check_able_request_main_index_for_reset(int request_main_index);
|
||||
static void Player_actor_putin_item(int slot, mActor_name_t item, xyz_t* pos_p);
|
||||
static void Player_actor_putin_item_layer2(int slot, mActor_name_t item, xyz_t* pos_p);
|
||||
static void Player_actor_putin_furniture(GAME* game, int slot, mActor_name_t item);
|
||||
|
||||
static void Player_actor_sound_SetStatus(ACTOR* actor);
|
||||
static void Player_actor_set_sound_common1(xyz_t* pos, u16 id);
|
||||
static void Player_actor_set_sound_common2(ACTOR* actor, u16 id);
|
||||
static void Player_actor_sound_FootStep1(ACTOR* actor, u16 id);
|
||||
static void Player_actor_sound_FootStep2(ACTOR* actor);
|
||||
static void Player_actor_sound_Tumble(ACTOR* actor);
|
||||
static void Player_actor_sound_AMI_FURI(ACTOR* actor);
|
||||
static void Player_actor_sound_AMI_HIT(ACTOR* actor);
|
||||
static void Player_actor_sound_AMI_GET(ACTOR* actor);
|
||||
static void Player_actor_sound_GASAGOSO(ACTOR* actor);
|
||||
static void Player_actor_sound_AXE_FURI(ACTOR* actor);
|
||||
static void Player_actor_sound_AXE_HIT(ACTOR* actor, xyz_t* pos);
|
||||
static void Player_actor_sound_AXE_CUT(ACTOR* actor, xyz_t* pos);
|
||||
static void Player_actor_sound_SIT(ACTOR* actor, int ftr_idx);
|
||||
static void Player_actor_sound_STANDUP(ACTOR* actor, int ftr_idx);
|
||||
static void Player_actor_sound_JUMP(ACTOR* actor);
|
||||
static void Player_actor_sound_LANDING(ACTOR* actor);
|
||||
static void Player_actor_sound_ITEM_GET(ACTOR* actor);
|
||||
static void Player_actor_sound_BED_IN(ACTOR* actor);
|
||||
static void Player_actor_sound_BED_NEGAERI(ACTOR* actor);
|
||||
static void Player_actor_sound_BED_OUT(ACTOR* actor);
|
||||
static void Player_actor_sound_ROD_STROKE(ACTOR* actor);
|
||||
static void Player_actor_sound_ROD_STROKE_small(ACTOR* actor);
|
||||
static void Player_actor_sound_ROD_BACK(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop1(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop_umeru(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop_hit(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop_shigemi(ACTOR* actor);
|
||||
static void Player_actor_sound_ITEM_HORIDASHI(ACTOR* actor);
|
||||
static void Player_actor_sound_slip(ACTOR* actor);
|
||||
static void Player_actor_sound_tree_touch(xyz_t* pos);
|
||||
static void Player_actor_sound_tree_yurasu(xyz_t* pos);
|
||||
static void Player_actor_sound_kirikabu_scoop(ACTOR* actor);
|
||||
static void Player_actor_sound_kirikabu_out(ACTOR* actor);
|
||||
static void Player_actor_sound_knock(ACTOR* actor);
|
||||
static void Player_actor_sound_coin_gasagoso(ACTOR* actor);
|
||||
static void Player_actor_sound_araiiki(ACTOR* actor);
|
||||
static void Player_actor_sound_zassou_nuku(xyz_t* pos);
|
||||
static void Player_actor_sound_hachi_sasareru(ACTOR* actor);
|
||||
static void Player_actor_sound_wear(ACTOR* actor);
|
||||
static void Player_actor_sound_dai_ue_kakunou(ACTOR* actor);
|
||||
static void Player_actor_sound_umbrella_rotate(ACTOR* actor);
|
||||
static u16 Player_actor_sound_Get_bgm_num_forCompletePayment();
|
||||
static u16 Player_actor_sound_Get_bgm_num_forDemoGetGoldenItem(int type);
|
||||
static void Player_actor_sound_camera_move1(void);
|
||||
static void Player_actor_sound_camera_move2();
|
||||
static void Player_actor_sound_karaburi(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop_tree_hit(ACTOR* actor);
|
||||
static void Player_actor_sound_scoop_item_hit(ACTOR* actor);
|
||||
static void Player_actor_sound_axe_ball_hit(ACTOR* actor);
|
||||
static void Player_actor_sound_axe_broken1(ACTOR* actor);
|
||||
static void Player_actor_sound_axe_broken2(ACTOR* actor);
|
||||
static void Player_actor_sound_axe_broken3(ACTOR* actor);
|
||||
static void Player_actor_sound_uchiwa(ACTOR* actor);
|
||||
static void Player_actor_sound_move_temochi_kazaguruma(ACTOR* actor);
|
||||
|
||||
static void Player_actor_set_viblation_Shake_tree(void);
|
||||
|
||||
static int Player_actor_Item_main(ACTOR* actorx, GAME* game);
|
||||
static void Player_actor_LoadOrDestruct_Item(ACTOR* actor, int kind, int anim_idx, int mode, f32 speed, f32 morph_speed,
|
||||
f32 frame);
|
||||
static int Player_actor_Get_BasicItemMainIndex_fromItemKind(int kind);
|
||||
|
||||
static int Player_actor_CheckController_forPickup(GAME* game);
|
||||
static int Player_actor_CheckController_forAxe(GAME* game);
|
||||
static int Player_actor_CheckController_forNet(GAME* game);
|
||||
static int Player_actor_CheckController_forRod(GAME* game);
|
||||
static int Player_actor_CheckController_forScoop(GAME* game);
|
||||
static int Player_actor_CheckController_forUmbrella(GAME* game);
|
||||
static int Player_actor_CheckController_forFan(GAME* game, int type);
|
||||
static int Player_actor_CheckController_forShake_tree(GAME* game);
|
||||
static f32 Player_actor_CheckController_forStruggle_pitfall(void);
|
||||
static int Player_actor_CheckController_forDush(void);
|
||||
static f32 Player_actor_GetController_move_percentX(void);
|
||||
static f32 Player_actor_GetController_move_percentY(void);
|
||||
static f32 Player_actor_GetController_move_percentR(void);
|
||||
static s16 Player_actor_GetController_move_angle(void);
|
||||
static s16 Player_actor_GetController_old_move_angle(void);
|
||||
static f32 Player_actor_GetController_recognize_percentR(void);
|
||||
static f32 Player_actor_GetController_old_recognize_percentR(void);
|
||||
static int Player_actor_CheckController_forRadio_exercise(GAME* game);
|
||||
|
||||
/* Common */
|
||||
#include "../src/m_player_controller.c_inc"
|
||||
#include "../src/m_player_vibration.c_inc"
|
||||
@@ -219,9 +308,9 @@ static void Player_actor_Set_old_sound_frame_counter(ACTOR* actorx);
|
||||
static void Player_actor_change_proc_index(ACTOR* actorx, GAME* game);
|
||||
|
||||
static int Player_actor_request_main_invade_all(GAME*, int);
|
||||
static int Player_actor_request_main_refuse(GAME*, int);
|
||||
static int Player_actor_request_main_return_demo_all(GAME*, int, f32, int);
|
||||
static int Player_actor_request_main_wait_all(GAME*, f32, f32, int, int);
|
||||
// static int Player_actor_request_main_refuse(GAME*, int);
|
||||
// static int Player_actor_request_main_return_demo_all(GAME*, int, f32, int);
|
||||
// static int Player_actor_request_main_wait_all(GAME*, f32, f32, int, int);
|
||||
static int Player_actor_request_main_talk_all(GAME*, ACTOR*, int, f32, int, int);
|
||||
static int Player_actor_request_main_hold(GAME*, int, int, const xyz_t*, f32, int, int);
|
||||
static int Player_actor_request_main_recieve_wait(GAME*, ACTOR*, int, int, mActor_name_t, int, int);
|
||||
@@ -294,7 +383,7 @@ static int Player_actor_request_main_walk_all(GAME*, xyz_t*, f32, int, int);
|
||||
static int Player_actor_request_main_run_all(GAME*, f32, int, int);
|
||||
static int Player_actor_request_main_dash_all(GAME*, f32, int, int);
|
||||
|
||||
static void Player_actor_Refuse_pickup_demo_ct(ACTOR*);
|
||||
// static void Player_actor_Refuse_pickup_demo_ct(ACTOR*);
|
||||
|
||||
static void Player_actor_init_value(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
@@ -457,7 +546,7 @@ extern void Player_actor_dt(ACTOR* actorx, GAME* game) {
|
||||
|
||||
typedef void (*mPlayer_REQUEST_MAIN_CHANGE_FROM_SUBMENU_PROC)(ACTOR*, GAME*);
|
||||
|
||||
static void Player_actor_request_main_wait_from_submenu(ACTOR*, GAME*);
|
||||
// static void Player_actor_request_main_wait_from_submenu(ACTOR*, GAME*);
|
||||
static void Player_actor_request_main_putin_scoop_from_submenu(ACTOR*, GAME*);
|
||||
static void Player_actor_request_main_give_from_submenu(ACTOR*, GAME*);
|
||||
static void Player_actor_request_main_demo_wait_from_submenu(ACTOR*, GAME*);
|
||||
|
||||
+79
-110
@@ -1,128 +1,97 @@
|
||||
|
||||
int Player_actor_CheckController_forPickup(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
|
||||
static int Player_actor_CheckController_forPickup(GAME* game) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
mPlayer_Controller_Data_c* data = mPlib_Get_controller_data_for_title_demo_p();
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(actor, player->now_main_index);
|
||||
int ret = 0;
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_KIND_VALID(kind) && (data->on != 0) && (data->unk3B != 0)) {
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return !mPlayer_ITEM_KIND_CHECK(kind, 0, mPlayer_ITEM_KIND_NUM) && (data->on != 0) && (data->unk3B != 0);
|
||||
}
|
||||
|
||||
return chkTrigger(BUTTON_B);
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forAxe(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(actor, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forAxe(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_AXE(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_AXE(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return mPlib_Get_controller_data_for_title_demo_p()->on;
|
||||
}
|
||||
return chkTrigger(BUTTON_A);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forNet(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(actor, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forNet(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_NET(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_NET(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return mPlib_Get_controller_data_for_title_demo_p()->now;
|
||||
}
|
||||
return chkButton(BUTTON_A);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forRod(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(actor, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forRod(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_ROD(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_ROD(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return mPlib_Get_controller_data_for_title_demo_p()->on;
|
||||
}
|
||||
return chkTrigger(BUTTON_A);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forScoop(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(player, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forScoop(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_SHOVEL(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_SHOVEL(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return mPlib_Get_controller_data_for_title_demo_p()->on;
|
||||
}
|
||||
return chkTrigger(BUTTON_A);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forUmbrella(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(player, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forUmbrella(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_UMBRELLA(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_UMBRELLA(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return mPlib_Get_controller_data_for_title_demo_p()->on;
|
||||
}
|
||||
return chkTrigger(BUTTON_A);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forFan(GAME* game, int type) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;{
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(player, player->now_main_index);
|
||||
int check = 0;
|
||||
static int Player_actor_CheckController_forFan(GAME* game, int type) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_IS_FAN(kind)) {
|
||||
check = 1;
|
||||
}
|
||||
if (check != 0) {
|
||||
if (mPlayer_ITEM_IS_FAN(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
mPlayer_Controller_Data_c* data = mPlib_Get_controller_data_for_title_demo_p();
|
||||
if (type != 0) {
|
||||
@@ -138,17 +107,15 @@ int Player_actor_CheckController_forFan(GAME* game, int type) {
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forShake_tree(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR(play);
|
||||
s8 kind = Player_actor_Get_ItemKind(player, player->now_main_index);
|
||||
int check;
|
||||
static int Player_actor_CheckController_forShake_tree(GAME* game) {
|
||||
ACTOR* actorx = GET_PLAYER_ACTOR_GAME_ACTOR(game);
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
s8 kind = Player_actor_Get_ItemKind(actorx, player->now_main_index);
|
||||
|
||||
if (mPlayer_ITEM_KIND_VALID(kind) || (mPlayer_ITEM_IS_UMBRELLA(kind) || mPlayer_ITEM_IS_BALLOON(kind) ||
|
||||
mPlayer_ITEM_IS_WINDMILL(kind) || mPlayer_ITEM_IS_FAN(kind)) != FALSE) {
|
||||
if (!mPlayer_ITEM_KIND_CHECK(kind, 0, mPlayer_ITEM_KIND_NUM) || mPlayer_ITEM_IS_NOT_TOOL(kind) != FALSE) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
mPlayer_Controller_Data_c* data = mPlib_Get_controller_data_for_title_demo_p();
|
||||
return (data->on != 0) && (data->unk3B == 0);
|
||||
@@ -156,57 +123,58 @@ int Player_actor_CheckController_forShake_tree(GAME* game) {
|
||||
return chkTrigger(BUTTON_A);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
f32 Player_actor_CheckController_forStruggle_pitfall() {
|
||||
static f32 Player_actor_CheckController_forStruggle_pitfall(void) {
|
||||
return (chkTrigger(BUTTON_A) != 0) ? 1.0f : 0.0f;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forDush() {
|
||||
static int Player_actor_CheckController_forDush(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->unk3B
|
||||
: mPlib_CheckButtonOnly_forDush();
|
||||
}
|
||||
|
||||
f32 Player_actor_GetController_move_percentX() {
|
||||
static f32 Player_actor_GetController_move_percentX(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.move_pX
|
||||
: gamePT->mcon.move_pX;
|
||||
}
|
||||
|
||||
f32 Player_actor_GetController_move_percentY() {
|
||||
static f32 Player_actor_GetController_move_percentY(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.move_pY
|
||||
: gamePT->mcon.move_pY;
|
||||
}
|
||||
|
||||
f32 Player_actor_GetController_move_percentR() {
|
||||
static f32 Player_actor_GetController_move_percentR(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.move_pR
|
||||
: gamePT->mcon.move_pR;
|
||||
}
|
||||
|
||||
s16 Player_actor_GetController_move_angle() {
|
||||
static s16 Player_actor_GetController_move_angle(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.move_angle
|
||||
: gamePT->mcon.move_angle;
|
||||
}
|
||||
|
||||
s16 Player_actor_GetController_old_move_angle() {
|
||||
static s16 Player_actor_GetController_old_move_angle(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.last_move_angle
|
||||
: gamePT->mcon.last_move_angle;
|
||||
}
|
||||
|
||||
f32 Player_actor_GetController_recognize_percentR() {
|
||||
static f32 Player_actor_GetController_recognize_percentR(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.adjusted_pR
|
||||
: gamePT->mcon.adjusted_pR;
|
||||
}
|
||||
|
||||
f32 Player_actor_GetController_old_recognize_percentR() {
|
||||
static f32 Player_actor_GetController_old_recognize_percentR(void) {
|
||||
return (mEv_CheckTitleDemo() > 0) ? mPlib_Get_controller_data_for_title_demo_p()->mcon.last_adjusted_pR
|
||||
: gamePT->mcon.last_adjusted_pR;
|
||||
}
|
||||
|
||||
int Player_actor_CheckController_forRadio_exercise(GAME* game) {
|
||||
static int Player_actor_CheckController_forRadio_exercise(GAME* game) {
|
||||
if (mEv_CheckTitleDemo() > 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((mPlib_Check_now_handin_item() != 0) || (Player_actor_GetController_old_recognize_percentR() != 0.0f) ||
|
||||
(Player_actor_CheckController_forPickup(game) != 0) ||
|
||||
(Player_actor_CheckController_forShake_tree(game) != 0)) {
|
||||
@@ -215,32 +183,33 @@ int Player_actor_CheckController_forRadio_exercise(GAME* game) {
|
||||
|
||||
if (JW_JUTGamepad_getSubStickValue() > 0.6f) {
|
||||
s16 angle = JW_JUTGamepad_getSubStickAngle();
|
||||
|
||||
if (angle >= 0) {
|
||||
if (angle < 0x1000) {
|
||||
if (angle < DEG2SHORT_ANGLE2(22.5f)) {
|
||||
return 6;
|
||||
} else if (angle < 0x3000) {
|
||||
} else if (angle < DEG2SHORT_ANGLE2(67.5f)) {
|
||||
return 7;
|
||||
} else if (angle < 0x5000) {
|
||||
} else if (angle < DEG2SHORT_ANGLE2(112.5f)) {
|
||||
return 1;
|
||||
} else if (angle < DEG2SHORT_ANGLE2(157.5f)) {
|
||||
return 4;
|
||||
} else {
|
||||
return (0x7000 > angle) + 3;
|
||||
return 3;
|
||||
}
|
||||
} else {
|
||||
if (angle > -DEG2SHORT_ANGLE2(22.5f)) {
|
||||
return 6;
|
||||
} else if (angle > -DEG2SHORT_ANGLE2(67.5f)) {
|
||||
return 8;
|
||||
} else if (angle > -DEG2SHORT_ANGLE2(112.5f)) {
|
||||
return 2;
|
||||
} else if (angle > -DEG2SHORT_ANGLE2(157.5f)) {
|
||||
return 5;
|
||||
} else {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
if (angle > -0x1000) {
|
||||
return 6;
|
||||
}
|
||||
if (angle > -0x3000) {
|
||||
return 8;
|
||||
}
|
||||
if (angle > -0x5000) {
|
||||
return 2;
|
||||
}
|
||||
if (angle > -0x7000) {
|
||||
return 5;
|
||||
}
|
||||
|
||||
return 3;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -316,7 +316,7 @@ static void Player_actor_draw_Normal(ACTOR* actorx, GAME* game) {
|
||||
mPlayer_main_pickup_jump_c* main_pickup_jump = NULL;
|
||||
|
||||
if (mPlib_get_player_actor_main_index(game) == mPlayer_INDEX_PICKUP) {
|
||||
if (player->main_data.pickup.exchange_flag == FALSE) {
|
||||
if (player->main_data.pickup.signboard_flag == FALSE) {
|
||||
item = player->main_data.pickup.item;
|
||||
item_scale = player->main_data.pickup.scale;
|
||||
item_pos_p = &player->main_data.pickup.item_pos;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
int Player_actor_request_main_dma(GAME* game, int flag) {
|
||||
static int Player_actor_request_main_dma(GAME* game, int flag) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_DMA, flag) != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_DMA, flag);
|
||||
return TRUE;
|
||||
@@ -7,11 +7,11 @@ int Player_actor_request_main_dma(GAME* game, int flag) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Dma(void) {
|
||||
Player_actor_setup_main_Base();
|
||||
static void Player_actor_setup_main_Dma(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromDma(ACTOR* actorx, GAME* game) {
|
||||
static void Player_actor_request_proc_index_fromDma(ACTOR* actorx, GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
Object_Exchange_c* exchange = &play->object_exchange;
|
||||
int bank_idx = mSc_bank_regist_check(exchange, 14);
|
||||
@@ -55,7 +55,8 @@ void Player_actor_request_proc_index_fromDma(ACTOR* actorx, GAME* game) {
|
||||
}
|
||||
}
|
||||
}
|
||||
void Player_actor_main_Dma(ACTOR* actor, GAME* game) {
|
||||
|
||||
static void Player_actor_main_Dma(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_request_proc_index_fromDma(actor, game);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ static void Player_actor_setup_main_Give_wait(ACTOR* actorx, GAME* game) {
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Give_wait(ACTOR* actorx) {
|
||||
static void Player_actor_settle_main_Give_wait(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_give_wait_c* main_give_wait_p = &player->main_data.give_wait;
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
int Player_actor_request_main_intro_all(GAME* game, int flag) {
|
||||
static int Player_actor_request_main_intro_all(GAME* game, int flag) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_INTRO, flag) != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_INTRO, flag);
|
||||
return TRUE;
|
||||
@@ -7,36 +6,36 @@ int Player_actor_request_main_intro_all(GAME* game, int flag) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Intro(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Intro(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
|
||||
Player_actor_SetupItem_Base1(actor,0, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_SetupItem_Base1(actor, 0, -5.0f, &anim_idx, &part_table_idx);
|
||||
player->main_data.intro.timer = 0.0f;
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, 0.0f, part_table_idx);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_CulcAnimation_Intro(ACTOR* actor) {
|
||||
static void Player_actor_CulcAnimation_Intro(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Intro(ACTOR* actor) {
|
||||
static void Player_actor_Movement_Intro(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking(actor);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Intro(ACTOR* actor, GAME* game){
|
||||
Player_actor_Excute_Corect_forStand(actor);
|
||||
static void Player_actor_ObjCheck_Intro(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Intro(ACTOR* actor) {
|
||||
static void Player_actor_BGcheck_Intro(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_ResetCameraPos_Intro(GAME* game) {
|
||||
static void Player_actor_ResetCameraPos_Intro(GAME* game) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
|
||||
if (Camera2_Check_main_index(play, mPlayer_INDEX_INTRO) != 0) {
|
||||
@@ -44,20 +43,16 @@ void Player_actor_ResetCameraPos_Intro(GAME* game) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_request_proc_index_fromIntro(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_proc_index_fromIntro(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
player->main_data.intro.timer += 1.0f;
|
||||
|
||||
if(player->main_data.intro.timer >= 4.0f){
|
||||
Player_actor_request_main_wait_all(game, 0.0f, 0.0f, 0 ,1);
|
||||
if (player->main_data.intro.timer >= 4.0f) {
|
||||
Player_actor_request_main_wait_all(game, 0.0f, 0.0f, 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_main_Intro(ACTOR* actor, GAME* game){
|
||||
|
||||
static void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Intro(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Intro(actor);
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
static int Player_actor_request_main_pickup(GAME* game, mActor_name_t item, const xyz_t* target_pos_p,
|
||||
const xyz_t* item_pos_p, int slot_idx, int signboard_flag) {
|
||||
if (Player_actor_check_able_request_main_index_for_reset(mPlayer_INDEX_PICKUP) == FALSE) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_pickup_c* req_pickup_p = &player->requested_main_index_data.pickup;
|
||||
|
||||
req_pickup_p->inv_slot = slot_idx;
|
||||
req_pickup_p->item = item;
|
||||
req_pickup_p->target_pos = *target_pos_p;
|
||||
req_pickup_p->item_pos = *item_pos_p;
|
||||
req_pickup_p->flag = signboard_flag;
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_PICKUP, mPlayer_REQUEST_PRIORITY_8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Pickup(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
f32 morph_counter;
|
||||
mPlayer_request_pickup_c* req_pickup_p = &player->requested_main_index_data.pickup;
|
||||
mPlayer_main_pickup_c* main_pickup_p = &player->main_data.pickup;
|
||||
int slot_idx;
|
||||
mActor_name_t item;
|
||||
xyz_t* target_pos_p;
|
||||
xyz_t* item_pos_p;
|
||||
int signboard_flag;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
slot_idx = req_pickup_p->inv_slot;
|
||||
item = req_pickup_p->item;
|
||||
target_pos_p = &req_pickup_p->target_pos;
|
||||
item_pos_p = &req_pickup_p->item_pos;
|
||||
signboard_flag = req_pickup_p->flag;
|
||||
|
||||
main_pickup_p->target_pos = *target_pos_p;
|
||||
main_pickup_p->item_pos = *item_pos_p;
|
||||
main_pickup_p->signboard_flag = signboard_flag;
|
||||
main_pickup_p->scale = 0.01f;
|
||||
main_pickup_p->timer = 0.0f;
|
||||
main_pickup_p->item = item;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, mPlayer_ANIM_PICKUP1, -6.0f, &anim1_idx, &part_table_idx);
|
||||
|
||||
if (signboard_flag) {
|
||||
aSIGN_erase_white_sign(game, target_pos_p);
|
||||
}
|
||||
|
||||
Player_actor_putin_item(slot_idx, item, target_pos_p);
|
||||
|
||||
if (slot_idx >= 0) {
|
||||
main_pickup_p->exchange_flag = FALSE;
|
||||
} else if (mEv_CheckTitleDemo() > 0) {
|
||||
main_pickup_p->exchange_flag = FALSE;
|
||||
} else {
|
||||
main_pickup_p->exchange_flag = TRUE;
|
||||
}
|
||||
|
||||
Player_actor_InitAnimation_Base2(actorx, game, mPlayer_ANIM_PICKUP1, anim1_idx, 1.0f, 1.0f, 0.5f, -6.0f,
|
||||
cKF_FRAMECONTROL_STOP, mPlayer_PART_TABLE_PICK_UP);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
|
||||
if (item == ITM_FOOD_COCONUT) {
|
||||
mISL_SetNowPlayerAction(mISL_PLAYER_ACTION_PICKUP_COCONUT);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup(ACTOR* actorx) {
|
||||
Player_actor_Movement_Base_Stop(actorx, FALSE);
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Pickup(ACTOR* actorx, f32* last_anim0_cur_frame_p) {
|
||||
return Player_actor_CulcAnimation_Base2(actorx, last_anim0_cur_frame_p);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Pickup(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Pickup(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type1(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_SetSound_Pickup(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
cKF_FrameControl_c* fc0_p = &kf0_p->frame_control;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame(fc0_p, 10.0f)) {
|
||||
Player_actor_sound_ITEM_GET(actorx);
|
||||
}
|
||||
|
||||
if (Player_actor_Check_AnimationFrame(fc0_p, 20.0f)) {
|
||||
Player_actor_sound_GASAGOSO(actorx);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Pickup(ACTOR* actorx, GAME* game, f32 frame) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame_PerfectEquel(actorx, frame) == FALSE) {
|
||||
Player_actor_SetSound_Pickup(actorx);
|
||||
Player_actor_Set_FootMark_Base1(actorx, game, FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Set_Item_Pickup(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_c* main_pickup_p = &player->main_data.pickup;
|
||||
f32* scale_p = &main_pickup_p->scale;
|
||||
xyz_t* item_pos_p = &main_pickup_p->item_pos;
|
||||
xyz_t* left_hand_pos_p = &player->left_hand_pos;
|
||||
f32* timer_p = &main_pickup_p->timer;
|
||||
|
||||
(*timer_p) += 1.0f;
|
||||
if (*timer_p > 40.0f) {
|
||||
*timer_p = 40.0f;
|
||||
*scale_p = 0.0f;
|
||||
*item_pos_p = *left_hand_pos_p;
|
||||
} else {
|
||||
xyz_t* item_ofs_p = &main_pickup_p->item_offset;
|
||||
|
||||
if (*timer_p < 20.0f) {
|
||||
item_ofs_p->x = item_pos_p->x - left_hand_pos_p->x;
|
||||
item_ofs_p->y = item_pos_p->y - left_hand_pos_p->y;
|
||||
item_ofs_p->z = item_pos_p->z - left_hand_pos_p->z;
|
||||
} else {
|
||||
f32 p = 1.0f - (*timer_p - 20.0f) / 20.0f;
|
||||
|
||||
if (p < 0.0f) {
|
||||
p = 0.0f;
|
||||
} else if (p > 1.0f) {
|
||||
p = 1.0f;
|
||||
}
|
||||
|
||||
*scale_p = p * 0.01f;
|
||||
item_pos_p->x = left_hand_pos_p->x + p * item_ofs_p->x;
|
||||
item_pos_p->y = left_hand_pos_p->y + p * item_ofs_p->y;
|
||||
item_pos_p->z = left_hand_pos_p->z + p * item_ofs_p->z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromPickup(ACTOR* actorx, GAME* game, int end_flag) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (end_flag) {
|
||||
mPlayer_main_pickup_c* main_pickup_p = &player->main_data.pickup;
|
||||
|
||||
if (main_pickup_p->exchange_flag) {
|
||||
Player_actor_request_main_pickup_exchange(game, &main_pickup_p->target_pos, main_pickup_p->item,
|
||||
mPlayer_REQUEST_PRIORITY_21);
|
||||
} else {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
|
||||
if (main_pickup_p->item == ITM_GOLDEN_SHOVEL && mPlib_Check_golden_item_get_demo_end(3) == FALSE) {
|
||||
Player_actor_request_main_demo_get_golden_item_all(game, 3, mPlayer_REQUEST_PRIORITY_34);
|
||||
} else {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Pickup(ACTOR* actorx, GAME* game) {
|
||||
f32 last_anim0_cur_frame;
|
||||
int end_flag;
|
||||
|
||||
Player_actor_Movement_Pickup(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
end_flag = Player_actor_CulcAnimation_Pickup(actorx, &last_anim0_cur_frame);
|
||||
Player_actor_SearchAnimation_Pickup(actorx, game, last_anim0_cur_frame);
|
||||
Player_actor_Set_Item_Pickup(actorx);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_eye_pattern_normal(actorx);
|
||||
Player_actor_ObjCheck_Pickup(actorx, game);
|
||||
Player_actor_BGcheck_Pickup(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromPickup(actorx, game, end_flag);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
static int Player_actor_request_main_pickup_exchange(GAME* game, const xyz_t* target_pos_p, mActor_name_t item,
|
||||
int priority) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_PICKUP_EXCHANGE, priority)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_pickup_exchange_c* req_pickup_exchange_p = &player->requested_main_index_data.pickup_exchange;
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_PICKUP_EXCHANGE, priority);
|
||||
req_pickup_exchange_p->target_pos = *target_pos_p;
|
||||
req_pickup_exchange_p->item = item;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Pickup_exchange(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_pickup_exchange_c* req_pickup_exchange_p = &player->requested_main_index_data.pickup_exchange;
|
||||
mPlayer_main_pickup_exchange_c* main_pickup_exchange_p = &player->main_data.pickup_exchange;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
main_pickup_exchange_p->target_pos = req_pickup_exchange_p->target_pos;
|
||||
main_pickup_exchange_p->item = req_pickup_exchange_p->item;
|
||||
main_pickup_exchange_p->msg_mode = 0;
|
||||
main_pickup_exchange_p->submenu_flag = FALSE;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, mPlayer_ANIM_PICKUP_WAIT1, -6.0f, &anim1_idx, &part_table_idx);
|
||||
|
||||
if (anim1_idx != mPlayer_ANIM_PICKUP_WAIT1) {
|
||||
part_table_idx = mPlayer_PART_TABLE_NET;
|
||||
}
|
||||
|
||||
Player_actor_InitAnimation_Base1(actorx, game, mPlayer_ANIM_PICKUP_WAIT1, anim1_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
part_table_idx);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Pickup_exchange(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_exchange_c* main_pickup_exchange_p = &player->main_data.pickup_exchange;
|
||||
|
||||
if (main_pickup_exchange_p->submenu_flag == FALSE) {
|
||||
mActor_name_t item = main_pickup_exchange_p->item;
|
||||
xyz_t* target_pos_p = &main_pickup_exchange_p->target_pos;
|
||||
|
||||
if (item == ITM_SIGNBOARD) {
|
||||
aSIGN_set_white_sign(game, target_pos_p);
|
||||
} else if (Common_Get(clip).bg_item_clip != NULL &&
|
||||
Common_Get(clip).bg_item_clip->player_drop_entry_proc != NULL) {
|
||||
int ut_x;
|
||||
int ut_z;
|
||||
|
||||
if (mFI_Wpos2UtNum(&ut_x, &ut_z, *target_pos_p)) {
|
||||
Common_Get(clip).bg_item_clip->player_drop_entry_proc(game, item, ut_x, ut_z, mCoBG_LAYER0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup_exchange(ACTOR* actorx) {
|
||||
Player_actor_Movement_Base_Braking_common(actorx, 0.23925f);
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Pickup_exchange(ACTOR* actorx) {
|
||||
f32 dummy;
|
||||
|
||||
return Player_actor_CulcAnimation_Base2(actorx, &dummy);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Pickup_exchange(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Pickup_exchange(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type1(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_Pickup_exchange_demo_ct(ACTOR* actorx) {
|
||||
int msg_no;
|
||||
rgba_t window_color;
|
||||
|
||||
if (Common_Get(field_type) == mFI_FIELDTYPE2_FG) {
|
||||
msg_no = 0x17B2;
|
||||
} else {
|
||||
msg_no = 0x17B3;
|
||||
}
|
||||
|
||||
mDemo_Set_msg_num(msg_no);
|
||||
mDemo_Set_talk_display_name(FALSE);
|
||||
mDemo_Set_ListenAble();
|
||||
|
||||
window_color.r = 255;
|
||||
window_color.g = 255;
|
||||
window_color.b = 20;
|
||||
window_color.a = 255;
|
||||
mDemo_Set_talk_window_color(&window_color);
|
||||
mChoice_CLEAR_CHOSENUM();
|
||||
}
|
||||
|
||||
static int Player_actor_MessageControl_Pickup_exchange(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_exchange_c* main_pickup_exchange_p = &player->main_data.pickup_exchange;
|
||||
int* msg_mode_p = &main_pickup_exchange_p->msg_mode;
|
||||
|
||||
switch (*msg_mode_p) {
|
||||
case 0: {
|
||||
if (mDemo_Check(mDemo_TYPE_REPORT, actorx) == FALSE) {
|
||||
mDemo_Request(mDemo_TYPE_REPORT, actorx, &Player_actor_Pickup_exchange_demo_ct);
|
||||
} else {
|
||||
*msg_mode_p = 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
case 1: {
|
||||
int choice_no = mChoice_GET_CHOSENUM();
|
||||
|
||||
if (choice_no == mChoice_CHOICE0) {
|
||||
*msg_mode_p = 2;
|
||||
main_pickup_exchange_p->submenu_flag = TRUE;
|
||||
} else if (choice_no == mChoice_CHOICE1) {
|
||||
*msg_mode_p = 3;
|
||||
main_pickup_exchange_p->submenu_flag = FALSE;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
case 2: {
|
||||
|
||||
if (mDemo_Check(mDemo_TYPE_REPORT, actorx) == FALSE) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
Submenu* submenu = &play->submenu;
|
||||
|
||||
mSM_open_submenu_new2(submenu, mSM_OVL_INVENTORY, mSM_IV_OPEN_EXCHANGE, main_pickup_exchange_p->item,
|
||||
NULL, actorx->shape_info.rotation.y);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
case 3: {
|
||||
if (mDemo_Check(mDemo_TYPE_REPORT, actorx) == FALSE) {
|
||||
return mPlayer_INDEX_WAIT;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
default: {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromPickup_exchange(GAME* game, int request_main_index) {
|
||||
if (request_main_index == mPlayer_INDEX_WAIT) {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_34);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Pickup_exchange(ACTOR* actorx, GAME* game) {
|
||||
int request_main_index;
|
||||
|
||||
Player_actor_Movement_Pickup_exchange(actorx);
|
||||
Player_actor_CulcAnimation_Pickup_exchange(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_tex_anime_pattern(actorx);
|
||||
Player_actor_ObjCheck_Pickup_exchange(actorx, game);
|
||||
Player_actor_BGcheck_Pickup_exchange(actorx);
|
||||
request_main_index = Player_actor_MessageControl_Pickup_exchange(actorx, game);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromPickup_exchange(game, request_main_index);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
static int Player_actor_request_main_pickup_furniture(GAME* game, int slot_idx, mActor_name_t item,
|
||||
const xyz_t* item_pos_p) {
|
||||
if (Player_actor_check_able_request_main_index_for_reset(mPlayer_INDEX_PICKUP_FURNITURE) == FALSE) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_pickup_furniture_c* req_pickup_furniture_p =
|
||||
&player->requested_main_index_data.pickup_furniture;
|
||||
|
||||
req_pickup_furniture_p->inv_slot = slot_idx;
|
||||
req_pickup_furniture_p->item = item;
|
||||
req_pickup_furniture_p->item_pos = *item_pos_p;
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_PICKUP_FURNITURE, mPlayer_REQUEST_PRIORITY_8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Pickup_furniture(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_pickup_furniture_c* req_pickup_furniture_p = &player->requested_main_index_data.pickup_furniture;
|
||||
mPlayer_main_pickup_furniture_c* main_pickup_furniture_p = &player->main_data.pickup_furniture;
|
||||
int slot_idx;
|
||||
mActor_name_t item;
|
||||
xyz_t* item_pos_p;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
slot_idx = req_pickup_furniture_p->inv_slot;
|
||||
item = req_pickup_furniture_p->item;
|
||||
item_pos_p = &req_pickup_furniture_p->item_pos;
|
||||
|
||||
main_pickup_furniture_p->target_pos = main_pickup_furniture_p->item_pos = *item_pos_p;
|
||||
main_pickup_furniture_p->scale = 0.01f;
|
||||
main_pickup_furniture_p->item = item;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, mPlayer_ANIM_PICKUP1, -6.0f, &anim1_idx, &part_table_idx);
|
||||
Player_actor_putin_furniture(game, slot_idx, item);
|
||||
|
||||
if (slot_idx >= 0 || ITEM_IS_MYMANNIQUIN(item) || ITEM_IS_MYUMBRELLA(item)) {
|
||||
main_pickup_furniture_p->exchange_flag = FALSE;
|
||||
} else {
|
||||
main_pickup_furniture_p->exchange_flag = TRUE;
|
||||
}
|
||||
|
||||
Player_actor_InitAnimation_Base2(actorx, game, mPlayer_ANIM_PICKUP1, anim1_idx, 1.0f, 1.0f, 0.5f, -6.0f,
|
||||
cKF_FRAMECONTROL_STOP, mPlayer_PART_TABLE_PICK_UP);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Pickup_furniture(ACTOR* actorx, GAME* game) {
|
||||
if (Common_Get(clip).my_room_clip != NULL) {
|
||||
Common_Get(clip).my_room_clip->leaf_pickuped_proc();
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup_furniture_common(ACTOR* actorx, xyz_t* target_pos_p) {
|
||||
xyz_t* player_pos_p = &actorx->world.position;
|
||||
f32 dx = target_pos_p->x - player_pos_p->x;
|
||||
f32 dz = target_pos_p->z - player_pos_p->z;
|
||||
|
||||
if (dx != 0.0f || dz != 0.0f) {
|
||||
s16 target_angle_y = atans_table(dz, dx);
|
||||
|
||||
add_calc_short_angle2(&actorx->shape_info.rotation.y, target_angle_y, 1.0f - sqrtf(0.5f),
|
||||
DEG2SHORT_ANGLE2(13.73291015625f), DEG2SHORT_ANGLE2(0.274658203125f));
|
||||
}
|
||||
|
||||
Player_actor_Movement_Base_Braking_common(actorx, 0.32625f);
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup_furniture(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_furniture_c* main_pickup_furniture_p = &player->main_data.pickup_furniture;
|
||||
|
||||
Player_actor_Movement_Pickup_furniture_common(actorx, &main_pickup_furniture_p->target_pos);
|
||||
actorx->world.angle.y = actorx->shape_info.rotation.y;
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Pickup_furniture(ACTOR* actorx, f32* last_anim0_cur_frame_p) {
|
||||
return Player_actor_CulcAnimation_Base2(actorx, last_anim0_cur_frame_p);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Pickup_furniture(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Pickup_furniture(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type3(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_Set_Item_Pickup_furniture(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_furniture_c* main_pickup_furniture_p = &player->main_data.pickup_furniture;
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
f32 cur_frame = kf0_p->frame_control.current_frame;
|
||||
xyz_t* item_pos_p = &main_pickup_furniture_p->item_pos;
|
||||
f32* scale_p = &main_pickup_furniture_p->scale;
|
||||
xyz_t* left_hand_pos_p = &player->left_hand_pos;
|
||||
xyz_t* item_ofs_p = &main_pickup_furniture_p->item_offset;
|
||||
|
||||
if (cur_frame <= 10.0f) {
|
||||
if (Common_Get(clip).my_room_clip->ftr2leaf_proc()) {
|
||||
Common_Get(clip).my_room_clip->leaf_start_pos_proc(item_pos_p);
|
||||
}
|
||||
|
||||
item_ofs_p->x = item_pos_p->x - left_hand_pos_p->x;
|
||||
item_ofs_p->y = item_pos_p->y - left_hand_pos_p->y;
|
||||
item_ofs_p->z = item_pos_p->z - left_hand_pos_p->z;
|
||||
} else if (cur_frame <= 20.0f) {
|
||||
f32 p = 1.0f - (cur_frame - 10.0f) * 0.1f;
|
||||
|
||||
item_pos_p->x = left_hand_pos_p->x + p * item_ofs_p->x;
|
||||
item_pos_p->y = left_hand_pos_p->y + p * item_ofs_p->y;
|
||||
item_pos_p->z = left_hand_pos_p->z + p * item_ofs_p->z;
|
||||
} else {
|
||||
*item_pos_p = *left_hand_pos_p;
|
||||
}
|
||||
|
||||
if (cur_frame <= 10.0f) {
|
||||
*scale_p = 0.01f;
|
||||
} else if (cur_frame <= 20.0f) {
|
||||
*scale_p = 0.01f - ((cur_frame - 10.0f) * 0.01f) * 0.1f;
|
||||
} else {
|
||||
*scale_p = 0.0f;
|
||||
}
|
||||
|
||||
if (*scale_p > 0.01f) {
|
||||
*scale_p = 0.01f;
|
||||
} else if (*scale_p < 0.0f) {
|
||||
*scale_p = 0.0f;
|
||||
}
|
||||
|
||||
if (Common_Get(clip).my_room_clip != NULL) {
|
||||
if (Common_Get(clip).my_room_clip->ftr2leaf_proc()) {
|
||||
Common_Get(clip).my_room_clip->set_leaf_proc(item_pos_p, *scale_p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SetSound_Pickup_furniture(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
cKF_FrameControl_c* fc0_p = &kf0_p->frame_control;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame(fc0_p, 10.0f)) {
|
||||
Player_actor_sound_ITEM_GET(actorx);
|
||||
}
|
||||
|
||||
if (Player_actor_Check_AnimationFrame(fc0_p, 20.0f)) {
|
||||
Player_actor_sound_GASAGOSO(actorx);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Pickup_furniture(ACTOR* actorx, GAME* game, f32 frame) {
|
||||
if (Player_actor_Check_AnimationFrame_PerfectEquel(actorx, frame) == FALSE) {
|
||||
Player_actor_Set_Item_Pickup_furniture(actorx);
|
||||
Player_actor_SetSound_Pickup_furniture(actorx, game);
|
||||
Player_actor_Set_FootMark_Base1(actorx, game, FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromPickup_furniture(ACTOR* actorx, GAME* game, int end_flag) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (end_flag) {
|
||||
mPlayer_main_pickup_furniture_c* main_pickup_furniture_p = &player->main_data.pickup_furniture;
|
||||
|
||||
if (main_pickup_furniture_p->exchange_flag) {
|
||||
Player_actor_request_main_pickup_exchange(game, &main_pickup_furniture_p->target_pos,
|
||||
main_pickup_furniture_p->item, mPlayer_REQUEST_PRIORITY_21);
|
||||
} else {
|
||||
if (main_pickup_furniture_p->item == ITM_GOLDEN_SHOVEL &&
|
||||
mPlib_Check_golden_item_get_demo_end(3) == FALSE) {
|
||||
Player_actor_request_main_demo_get_golden_item_all(game, 3, mPlayer_REQUEST_PRIORITY_34);
|
||||
} else {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Pickup_furniture(ACTOR* actorx, GAME* game) {
|
||||
f32 last_anim0_cur_frame;
|
||||
int end_flag;
|
||||
|
||||
Player_actor_Movement_Pickup_furniture(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
end_flag = Player_actor_CulcAnimation_Pickup_furniture(actorx, &last_anim0_cur_frame);
|
||||
Player_actor_SearchAnimation_Pickup_furniture(actorx, game, last_anim0_cur_frame);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_eye_pattern_normal(actorx);
|
||||
Player_actor_ObjCheck_Pickup_furniture(actorx, game);
|
||||
Player_actor_BGcheck_Pickup_furniture(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromPickup_furniture(actorx, game, end_flag);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
static int Player_actor_request_main_pickup_jump(GAME* game, int slot_idx, mActor_name_t item, const xyz_t* item_pos_p,
|
||||
int ftr_flag, int knife_and_fork_flag) {
|
||||
if (Player_actor_check_able_request_main_index_for_reset(mPlayer_INDEX_PICKUP_JUMP) == FALSE) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_pickup_jump_c* req_pickup_jump_p = &player->requested_main_index_data.pickup_jump;
|
||||
|
||||
req_pickup_jump_p->inv_slot = slot_idx;
|
||||
req_pickup_jump_p->item = item;
|
||||
req_pickup_jump_p->ftr_flag = ftr_flag;
|
||||
req_pickup_jump_p->knife_and_fork_flag = knife_and_fork_flag;
|
||||
req_pickup_jump_p->item_pos = *item_pos_p;
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_PICKUP_JUMP, mPlayer_REQUEST_PRIORITY_8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Pickup_jump(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_pickup_jump_c* req_pickup_jump_p = &player->requested_main_index_data.pickup_jump;
|
||||
mPlayer_main_pickup_jump_c* main_pickup_jump_p = &player->main_data.pickup_jump;
|
||||
int slot_idx;
|
||||
mActor_name_t item;
|
||||
xyz_t* item_pos_p;
|
||||
int ftr_flag;
|
||||
int knife_and_fork_flag;
|
||||
int anim0_idx;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
slot_idx = req_pickup_jump_p->inv_slot;
|
||||
item = req_pickup_jump_p->item;
|
||||
item_pos_p = &req_pickup_jump_p->item_pos;
|
||||
ftr_flag = req_pickup_jump_p->ftr_flag;
|
||||
knife_and_fork_flag = req_pickup_jump_p->knife_and_fork_flag;
|
||||
|
||||
if (ftr_flag) {
|
||||
anim0_idx = mPlayer_ANIM_CLEAR_TABLE_L1;
|
||||
} else {
|
||||
anim0_idx = mPlayer_ANIM_CLEAR_TABLE1;
|
||||
}
|
||||
|
||||
main_pickup_jump_p->ftr_flag = ftr_flag;
|
||||
main_pickup_jump_p->target_pos = main_pickup_jump_p->item_pos = *item_pos_p;
|
||||
main_pickup_jump_p->scale = 0.01f;
|
||||
main_pickup_jump_p->item = item;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, anim0_idx, -6.0f, &anim1_idx, &part_table_idx);
|
||||
|
||||
if (ftr_flag == FALSE) {
|
||||
Player_actor_putin_item_layer2(slot_idx, item, item_pos_p);
|
||||
} else {
|
||||
Player_actor_putin_furniture(game, slot_idx, item);
|
||||
}
|
||||
|
||||
if (slot_idx >= 0 || ITEM_IS_MYMANNIQUIN(item) || ITEM_IS_MYUMBRELLA(item)) {
|
||||
main_pickup_jump_p->exchange_flag = FALSE;
|
||||
} else {
|
||||
main_pickup_jump_p->exchange_flag = TRUE;
|
||||
}
|
||||
|
||||
if (knife_and_fork_flag) {
|
||||
Common_Get(clip).htbl_clip->pickup_counter = 2;
|
||||
}
|
||||
|
||||
Player_actor_InitAnimation_Base2(actorx, game, anim0_idx, anim1_idx, 1.0f, 1.0f, 0.5f, -6.0f, cKF_FRAMECONTROL_STOP,
|
||||
mPlayer_PART_TABLE_PICK_UP);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
Player_actor_sound_dai_ue_kakunou(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Pickup_jump(ACTOR* actorx, GAME* game) {
|
||||
if (Common_Get(clip).my_room_clip != NULL) {
|
||||
Common_Get(clip).my_room_clip->leaf_pickuped_proc();
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup_jump_common(ACTOR* actorx, xyz_t* target_pos_p) {
|
||||
xyz_t* player_pos_p = &actorx->world.position;
|
||||
f32 dx = target_pos_p->x - player_pos_p->x;
|
||||
f32 dz = target_pos_p->z - player_pos_p->z;
|
||||
|
||||
if (dx != 0.0f || dz != 0.0f) {
|
||||
s16 target_angle_y = atans_table(dz, dx);
|
||||
|
||||
add_calc_short_angle2(&actorx->shape_info.rotation.y, target_angle_y, 1.0f - sqrtf(0.5f),
|
||||
DEG2SHORT_ANGLE2(13.73291015625f), DEG2SHORT_ANGLE2(0.274658203125f));
|
||||
}
|
||||
|
||||
Player_actor_Movement_Base_Braking_common(actorx, 0.32625f);
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Pickup_jump(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_jump_c* main_pickup_jump_p = &player->main_data.pickup_jump;
|
||||
|
||||
Player_actor_Movement_Pickup_jump_common(actorx, &main_pickup_jump_p->target_pos);
|
||||
actorx->world.angle.y = actorx->shape_info.rotation.y;
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Pickup_jump(ACTOR* actorx, f32* last_anim0_cur_frame_p) {
|
||||
return Player_actor_CulcAnimation_Base2(actorx, last_anim0_cur_frame_p);
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Pickup_jump(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Pickup_jump(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type3(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_Set_Item_Pickup_jump(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_pickup_jump_c* main_pickup_jump_p = &player->main_data.pickup_jump;
|
||||
int ftr_flag = main_pickup_jump_p->ftr_flag;
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
f32 cur_frame = kf0_p->frame_control.current_frame - (f32)(ftr_flag ? 0.0f : 0.0f);
|
||||
xyz_t* item_pos_p = &main_pickup_jump_p->item_pos;
|
||||
f32* scale_p = &main_pickup_jump_p->scale;
|
||||
xyz_t* left_hand_pos_p = &player->left_hand_pos;
|
||||
xyz_t* item_ofs_p = &main_pickup_jump_p->item_offset;
|
||||
|
||||
if (cur_frame <= 11.0f) {
|
||||
if (ftr_flag && Common_Get(clip).my_room_clip != NULL) {
|
||||
if (Common_Get(clip).my_room_clip->ftr2leaf_proc()) {
|
||||
Common_Get(clip).my_room_clip->leaf_start_pos_proc(item_pos_p);
|
||||
}
|
||||
}
|
||||
|
||||
item_ofs_p->x = item_pos_p->x - left_hand_pos_p->x;
|
||||
item_ofs_p->y = item_pos_p->y - left_hand_pos_p->y;
|
||||
item_ofs_p->z = item_pos_p->z - left_hand_pos_p->z;
|
||||
} else if (cur_frame <= 16.0f) {
|
||||
f32 p = 1.0f - (cur_frame - 11.0f) * 0.2f;
|
||||
|
||||
item_pos_p->x = left_hand_pos_p->x + p * item_ofs_p->x;
|
||||
item_pos_p->y = left_hand_pos_p->y + p * item_ofs_p->y;
|
||||
item_pos_p->z = left_hand_pos_p->z + p * item_ofs_p->z;
|
||||
} else {
|
||||
*item_pos_p = *left_hand_pos_p;
|
||||
}
|
||||
|
||||
if (cur_frame <= 11.0f) {
|
||||
*scale_p = 0.01f;
|
||||
} else if (cur_frame <= 16.0f) {
|
||||
*scale_p = 0.01f - ((cur_frame - 11.0f) * 0.0025f) * 0.2f;
|
||||
} else if (cur_frame <= 30.0f) {
|
||||
*scale_p = 0.0075f - ((cur_frame - 16.0f) * 0.0075f) * (1.0f / 14.0f);
|
||||
} else {
|
||||
*scale_p = 0.0f;
|
||||
}
|
||||
|
||||
if (*scale_p > 0.01f) {
|
||||
*scale_p = 0.01f;
|
||||
} else if (*scale_p < 0.0f) {
|
||||
*scale_p = 0.0f;
|
||||
}
|
||||
|
||||
if (ftr_flag && Common_Get(clip).my_room_clip != NULL) {
|
||||
if (Common_Get(clip).my_room_clip->ftr2leaf_proc()) {
|
||||
Common_Get(clip).my_room_clip->set_leaf_proc(item_pos_p, *scale_p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Pickup_jump(ACTOR* actorx, f32 frame) {
|
||||
if (Player_actor_Check_AnimationFrame_PerfectEquel(actorx, frame) == FALSE) {
|
||||
Player_actor_Set_Item_Pickup_jump(actorx);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromPickup_jump(ACTOR* actorx, GAME* game, int end_flag) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (end_flag) {
|
||||
mPlayer_main_pickup_jump_c* main_pickup_jump_p = &player->main_data.pickup_jump;
|
||||
|
||||
if (main_pickup_jump_p->exchange_flag) {
|
||||
Player_actor_request_main_pickup_exchange(game, &main_pickup_jump_p->target_pos, main_pickup_jump_p->item,
|
||||
mPlayer_REQUEST_PRIORITY_21);
|
||||
} else {
|
||||
if (main_pickup_jump_p->item == ITM_GOLDEN_SHOVEL && mPlib_Check_golden_item_get_demo_end(3) == FALSE) {
|
||||
Player_actor_request_main_demo_get_golden_item_all(game, 3, mPlayer_REQUEST_PRIORITY_34);
|
||||
} else {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Pickup_jump(ACTOR* actorx, GAME* game) {
|
||||
f32 last_anim0_cur_frame;
|
||||
int end_flag;
|
||||
|
||||
Player_actor_Movement_Pickup_jump(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
end_flag = Player_actor_CulcAnimation_Pickup_jump(actorx, &last_anim0_cur_frame);
|
||||
Player_actor_SearchAnimation_Pickup_jump(actorx, last_anim0_cur_frame);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_eye_pattern_normal(actorx);
|
||||
Player_actor_ObjCheck_Pickup_jump(actorx, game);
|
||||
Player_actor_BGcheck_Pickup_jump(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromPickup_jump(actorx, game, end_flag);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ static void Player_actor_setup_main_Recieve_putaway(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_sound_GASAGOSO(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_settle_main_Recieve_putaway(ACTOR* actorx) {
|
||||
static void Player_actor_settle_main_Recieve_putaway(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Unset_item_matrix_set(actorx);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int Player_actor_request_main_refuse(GAME* game, int flag) {
|
||||
static int Player_actor_request_main_refuse(GAME* game, int flag) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_REFUSE, flag) != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_REFUSE, flag);
|
||||
return TRUE;
|
||||
@@ -6,38 +6,36 @@ int Player_actor_request_main_refuse(GAME* game, int flag) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Refuse(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Refuse(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
|
||||
Player_actor_SetupItem_Base1(actor,0, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f, part_table_idx);
|
||||
Player_actor_SetupItem_Base1(actor, 0, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
part_table_idx);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_Movement_Refuse(ACTOR* actor) {
|
||||
static void Player_actor_Movement_Refuse(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking(actor);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_CulcAnimation_Refuse(ACTOR* actor) {
|
||||
static void Player_actor_CulcAnimation_Refuse(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Refuse(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor);
|
||||
static void Player_actor_ObjCheck_Refuse(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Refuse(ACTOR* actor) {
|
||||
static void Player_actor_BGcheck_Refuse(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type2(actor);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
static void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Refuse(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Refuse(actor);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
int Player_actor_request_main_refuse_pickup_all(GAME* game, int flag) {
|
||||
static int Player_actor_request_main_refuse_pickup_all(GAME* game, int flag) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_REFUSE_PICKUP, flag) != FALSE) {
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_REFUSE_PICKUP, flag);
|
||||
return TRUE;
|
||||
@@ -7,17 +7,17 @@ int Player_actor_request_main_refuse_pickup_all(GAME* game, int flag) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Player_actor_Refuse_pickup_demo_ct(ACTOR* actor){
|
||||
static void Player_actor_Refuse_pickup_demo_ct(ACTOR* actor) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
int msg;
|
||||
rgba_t color;
|
||||
|
||||
Player_actor_request_main_refuse_pickup_all(gamePT, 0x13);
|
||||
Player_actor_request_main_refuse_pickup_all(gamePT, 0x13);
|
||||
|
||||
msg = (Common_Get(field_type) == 0) ? 0x17AD : 0x17AE;
|
||||
|
||||
if(player->refuse_pickup_knife_fork_flag != FALSE){
|
||||
if (player->refuse_pickup_knife_fork_flag != FALSE) {
|
||||
msg = 0x3B59;
|
||||
}
|
||||
|
||||
@@ -33,43 +33,43 @@ void Player_actor_Refuse_pickup_demo_ct(ACTOR* actor){
|
||||
mDemo_Set_talk_window_color(&color);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_setup_main_Refuse_pickup(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Refuse_pickup(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
|
||||
Player_actor_SetupItem_Base1(actor,0, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f, part_table_idx);
|
||||
Player_actor_SetupItem_Base1(actor, 0, -5.0f, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
part_table_idx);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Refuse_pickup(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking_common(actor, 0.23925f);
|
||||
static void Player_actor_Movement_Refuse_pickup(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking_common(actor, 0.23925f);
|
||||
}
|
||||
|
||||
void Player_actor_CulcAnimation_Refuse_pickup(ACTOR* actor) {
|
||||
static void Player_actor_CulcAnimation_Refuse_pickup(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Refuse_pickup(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor);
|
||||
static void Player_actor_ObjCheck_Refuse_pickup(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Refuse_pickup(ACTOR* actor) {
|
||||
static void Player_actor_BGcheck_Refuse_pickup(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromRefuse_pickup(ACTOR* actor, GAME* game) {
|
||||
static void Player_actor_request_proc_index_fromRefuse_pickup(ACTOR* actor, GAME* game) {
|
||||
if (mDemo_Check(mDemo_TYPE_REPORT, actor) == 0) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actor);
|
||||
Player_actor_request_main_wait_all(game,-5.0f, 0.0f, 0, 1);
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
static void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Refuse_pickup(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Refuse_pickup(actor);
|
||||
@@ -78,5 +78,5 @@ void Player_actor_main_Intro(ACTOR* actor, GAME* game) {
|
||||
Player_actor_ObjCheck_Refuse_pickup(actor, game);
|
||||
Player_actor_BGcheck_Refuse_pickup(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromRefuse_pickup(actor,game);
|
||||
Player_actor_request_proc_index_fromRefuse_pickup(actor, game);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
static int Player_actor_request_main_remove_grass(GAME* game, const xyz_t* target_pos_p, const xyz_t* grass_pos_p) {
|
||||
if (Player_actor_check_able_request_main_index_for_reset(mPlayer_INDEX_REMOVE_GRASS) == FALSE) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_remove_grass_c* req_remove_grass_p = &player->requested_main_index_data.remove_grass;
|
||||
|
||||
req_remove_grass_p->target_pos = *target_pos_p;
|
||||
req_remove_grass_p->grass_pos = *grass_pos_p;
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_REMOVE_GRASS, mPlayer_REQUEST_PRIORITY_8);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Remove_grass(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_remove_grass_c* req_remove_grass_p = &player->requested_main_index_data.remove_grass;
|
||||
mPlayer_main_remove_grass_c* main_remove_grass_p = &player->main_data.remove_grass;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
main_remove_grass_p->target_pos = req_remove_grass_p->target_pos;
|
||||
main_remove_grass_p->grass_pos = req_remove_grass_p->grass_pos;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, mPlayer_ANIM_ZASSOU1, -5.0f, &anim1_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base2(actorx, game, mPlayer_ANIM_ZASSOU1, anim1_idx, 1.0f, 1.0f, 0.5f, -6.0f,
|
||||
cKF_FRAMECONTROL_STOP, mPlayer_PART_TABLE_PICK_UP);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Remove_grass(ACTOR* actorx) {
|
||||
Player_actor_Movement_Base_Stop(actorx, FALSE);
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Remove_grass(ACTOR* actorx, f32* last_anim0_cur_frame_p) {
|
||||
return Player_actor_CulcAnimation_Base2(actorx, last_anim0_cur_frame_p);
|
||||
}
|
||||
|
||||
static void Player_actor_ChangeFGNumber_Remove_grass(ACTOR* actorx, GAME* game) {
|
||||
if (Common_Get(clip).bg_item_clip != NULL && Common_Get(clip).bg_item_clip->fly_entry_proc != NULL) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
cKF_FrameControl_c* fc0_p = &kf0_p->frame_control;
|
||||
if (Player_actor_Check_AnimationFrame(fc0_p, 17.0f)) {
|
||||
mPlayer_main_remove_grass_c* main_remove_grass_p = &player->main_data.remove_grass;
|
||||
xyz_t* grass_pos_p = &main_remove_grass_p->grass_pos;
|
||||
xyz_t* target_pos_p = &main_remove_grass_p->target_pos;
|
||||
mActor_name_t* fg_p = mFI_GetUnitFG(*target_pos_p);
|
||||
|
||||
if (fg_p != NULL) {
|
||||
if (IS_ITEM_GRASS(*fg_p) != FALSE) {
|
||||
s16 angle_y = DEG2SHORT_ANGLE2(110.0f) + actorx->shape_info.rotation.y;
|
||||
|
||||
Common_Get(clip).bg_item_clip->fly_entry_proc(*fg_p, grass_pos_p, angle_y);
|
||||
eEC_CLIP->effect_make_proc(eEC_EFFECT_DIG_MUD, *grass_pos_p, 2, 0, game, RSV_NO,
|
||||
mCoBG_Wpos2Attribute(*grass_pos_p, NULL), 8);
|
||||
Player_actor_sound_zassou_nuku(grass_pos_p);
|
||||
Player_actor_set_viblation_Remove_grass();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Remove_grass(ACTOR* actorx, GAME* game, f32 frame) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame_PerfectEquel(actorx, frame) == FALSE) {
|
||||
Player_actor_ChangeFGNumber_Remove_grass(actorx, game);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Remove_grass(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Remove_grass(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type1(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromRemove_grass(ACTOR* actorx, GAME* game, int end_flag) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (end_flag) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Remove_grass(ACTOR* actorx, GAME* game) {
|
||||
f32 last_anim0_cur_frame;
|
||||
int end_flag;
|
||||
|
||||
Player_actor_Movement_Remove_grass(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
end_flag = Player_actor_CulcAnimation_Remove_grass(actorx, &last_anim0_cur_frame);
|
||||
Player_actor_SearchAnimation_Remove_grass(actorx, game, last_anim0_cur_frame);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_eye_pattern_normal(actorx);
|
||||
Player_actor_ObjCheck_Remove_grass(actorx, game);
|
||||
Player_actor_BGcheck_Remove_grass(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromRemove_grass(actorx, game, end_flag);
|
||||
}
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
|
||||
int Player_actor_request_main_return_demo_all(GAME* game, int prev_index, int now_index, f32 time){
|
||||
|
||||
if(Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_DEMO, now_index)){
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
static int Player_actor_request_main_return_demo_all(GAME* game, int prev_index, int now_index, f32 time) {
|
||||
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_DEMO, now_index)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
player->requested_main_index_data.return_demo.prev_main_index = prev_index;
|
||||
player->requested_main_index_data.return_demo.time = time;
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_RETURN_DEMO, now_index);
|
||||
return TRUE;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_setup_main_Return_demo(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Return_demo(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
@@ -24,47 +22,46 @@ void Player_actor_setup_main_Return_demo(ACTOR* actor, GAME* game){
|
||||
player->main_data.return_demo.timer = 0.0f;
|
||||
player->main_data.return_demo.max_timer = player->requested_main_index_data.return_demo.time;
|
||||
player->main_data.return_demo.prev_main_index = player->requested_main_index_data.return_demo.prev_main_index;
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f, part_table_idx);
|
||||
Player_actor_setup_main_Base(actor,game);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
part_table_idx);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_CulcAnimation_Return_demo(ACTOR* actor){
|
||||
static void Player_actor_CulcAnimation_Return_demo(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Return_demo(ACTOR* actor){
|
||||
static void Player_actor_Movement_Return_demo(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking(actor);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Return_demo(ACTOR* actor, GAME* game){
|
||||
Player_actor_Excute_Corect_forStand(actor,game);
|
||||
static void Player_actor_ObjCheck_Return_demo(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Return_demo(ACTOR* actor){
|
||||
static void Player_actor_BGcheck_Return_demo(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromReturn_demo(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_proc_index_fromReturn_demo(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
f32 max_timer = player->main_data.return_demo.max_timer;
|
||||
int prev = player->main_data.return_demo.prev_main_index;
|
||||
|
||||
|
||||
player->main_data.return_demo.timer += 1.0f;
|
||||
|
||||
if(player->main_data.return_demo.timer >= max_timer){
|
||||
if(prev != mPlayer_INDEX_DEMO_WAIT){
|
||||
|
||||
if (player->main_data.return_demo.timer >= max_timer) {
|
||||
if (prev != mPlayer_INDEX_DEMO_WAIT) {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, 1);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
Player_actor_request_main_demo_wait_all(game, 0, NULL, 19);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_main_Return_demo(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_main_Return_demo(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Return_demo(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Return_demo(actor);
|
||||
@@ -73,5 +70,5 @@ void Player_actor_main_Return_demo(ACTOR* actor, GAME* game){
|
||||
Player_actor_ObjCheck_Return_demo(actor, game);
|
||||
Player_actor_BGcheck_Return_demo(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_demo(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_demo(actor, game);
|
||||
}
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
int Player_actor_request_main_return_outdoor_all(GAME* game, int prev_index, int now_index, f32 time, f32 arg5){
|
||||
|
||||
if(Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_OUTDOOR, now_index)){
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
static int Player_actor_request_main_return_outdoor_all(GAME* game, int prev_index, int now_index, f32 time, f32 arg5) {
|
||||
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_OUTDOOR, now_index)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
player->requested_main_index_data.return_outdoor.prev_main_index = prev_index;
|
||||
player->requested_main_index_data.return_outdoor.time = time;
|
||||
player->requested_main_index_data.return_outdoor._08 = arg5;
|
||||
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_RETURN_OUTDOOR, now_index);
|
||||
return TRUE;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Return_outdoor(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Return_outdoor(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
@@ -26,40 +25,39 @@ void Player_actor_setup_main_Return_outdoor(ACTOR* actor, GAME* game){
|
||||
player->main_data.return_outdoor.max_timer = player->requested_main_index_data.return_outdoor.time;
|
||||
player->main_data.return_outdoor.prev_main_index = player->requested_main_index_data.return_outdoor.prev_main_index;
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, _08, part_table_idx);
|
||||
Player_actor_setup_main_Base(actor,game);
|
||||
}
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_CulcAnimation_Return_outdoor(ACTOR* actor){
|
||||
static void Player_actor_CulcAnimation_Return_outdoor(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Return_outdoor(ACTOR* actor){
|
||||
static void Player_actor_Movement_Return_outdoor(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking(actor);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Return_outdoor(ACTOR* actor, GAME* game){
|
||||
Player_actor_Excute_Corect_forStand(actor,game);
|
||||
static void Player_actor_ObjCheck_Return_outdoor(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Return_outdoor(ACTOR* actor){
|
||||
static void Player_actor_BGcheck_Return_outdoor(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromReturn_outdoor(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_proc_index_fromReturn_outdoor(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
f32 max_timer = player->main_data.return_outdoor.max_timer;
|
||||
int prev = player->main_data.return_outdoor.prev_main_index;
|
||||
player->main_data.return_outdoor.timer += 1.0f;
|
||||
|
||||
if(player->main_data.return_outdoor.timer >= max_timer){
|
||||
|
||||
if (player->main_data.return_outdoor.timer >= max_timer) {
|
||||
Player_actor_request_main_return_outdoor2_all(game, prev, mPlayer_INDEX_INTRO, 3.0f, -5.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_main_Return_outdoor(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_main_Return_outdoor(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Return_outdoor(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Return_outdoor(actor);
|
||||
@@ -68,5 +66,5 @@ void Player_actor_main_Return_outdoor(ACTOR* actor, GAME* game){
|
||||
Player_actor_ObjCheck_Return_outdoor(actor, game);
|
||||
Player_actor_BGcheck_Return_outdoor(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_outdoor(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_outdoor(actor, game);
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
int Player_actor_request_main_return_outdoor2_all(GAME* game, int prev_index, int now_index, f32 time, f32 arg5){
|
||||
|
||||
if(Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_OUTDOOR2, now_index)){
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
static int Player_actor_request_main_return_outdoor2_all(GAME* game, int prev_index, int now_index, f32 time,
|
||||
f32 arg5) {
|
||||
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_RETURN_OUTDOOR2, now_index)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
player->requested_main_index_data.return_outdoor2.prev_main_index = prev_index;
|
||||
player->requested_main_index_data.return_outdoor2.time = time;
|
||||
player->requested_main_index_data.return_outdoor2._08 = arg5;
|
||||
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_RETURN_OUTDOOR2, now_index);
|
||||
return TRUE;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Return_outdoor2(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Return_outdoor2(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
@@ -24,47 +24,46 @@ void Player_actor_setup_main_Return_outdoor2(ACTOR* actor, GAME* game){
|
||||
Player_actor_SetupItem_Base1(actor, 0, -5.0f, &anim_idx, &part_table_idx);
|
||||
player->main_data.return_outdoor2.timer = 0.0f;
|
||||
player->main_data.return_outdoor2.max_timer = player->requested_main_index_data.return_outdoor2.time;
|
||||
player->main_data.return_outdoor2.prev_main_index = player->requested_main_index_data.return_outdoor2.prev_main_index;
|
||||
player->main_data.return_outdoor2.prev_main_index =
|
||||
player->requested_main_index_data.return_outdoor2.prev_main_index;
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, _08, part_table_idx);
|
||||
Player_actor_setup_main_Base(actor,game);
|
||||
}
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
|
||||
void Player_actor_CulcAnimation_Return_outdoor2(ACTOR* actor){
|
||||
static void Player_actor_CulcAnimation_Return_outdoor2(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Return_outdoor2(ACTOR* actor){
|
||||
static void Player_actor_Movement_Return_outdoor2(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking(actor);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Return_outdoor2(ACTOR* actor, GAME* game){
|
||||
Player_actor_Excute_Corect_forStand(actor,game);
|
||||
static void Player_actor_ObjCheck_Return_outdoor2(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Return_outdoor2(ACTOR* actor){
|
||||
static void Player_actor_BGcheck_Return_outdoor2(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromReturn_outdoor2(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_proc_index_fromReturn_outdoor2(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
f32 max_timer = player->main_data.return_outdoor2.max_timer;
|
||||
int prev = player->main_data.return_outdoor2.prev_main_index;
|
||||
player->main_data.return_outdoor2.timer += 1.0f;
|
||||
|
||||
if(player->main_data.return_outdoor2.timer >= max_timer){
|
||||
if(prev != mPlayer_INDEX_DEMO_WAIT){
|
||||
|
||||
if (player->main_data.return_outdoor2.timer >= max_timer) {
|
||||
if (prev != mPlayer_INDEX_DEMO_WAIT) {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, 1);
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
Player_actor_request_main_demo_wait_all(game, 0, NULL, 19);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_main_Return_outdoor2(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_main_Return_outdoor2(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Movement_Return_outdoor2(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
Player_actor_CulcAnimation_Return_outdoor2(actor);
|
||||
@@ -73,5 +72,5 @@ void Player_actor_main_Return_outdoor2(ACTOR* actor, GAME* game){
|
||||
Player_actor_ObjCheck_Return_outdoor2(actor, game);
|
||||
Player_actor_BGcheck_Return_outdoor2(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_outdoor2(actor, game);
|
||||
Player_actor_request_proc_index_fromReturn_outdoor2(actor, game);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
static int Player_actor_request_main_shake_tree_all(GAME* game, const xyz_t* target_pos_p, mActor_name_t item,
|
||||
int tree_ut_x, int tree_ut_z, int priority) {
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_SHAKE_TREE, priority)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
mPlayer_request_shake_tree_c* req_shake_tree_p = &player->requested_main_index_data.shake_tree;
|
||||
|
||||
req_shake_tree_p->pos = *target_pos_p;
|
||||
req_shake_tree_p->item = item;
|
||||
req_shake_tree_p->ut_x = tree_ut_x;
|
||||
req_shake_tree_p->ut_z = tree_ut_z;
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_SHAKE_TREE, priority);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Player_actor_setup_main_Shake_tree(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_request_shake_tree_c* req_shake_tree_p = &player->requested_main_index_data.shake_tree;
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
int anim1_idx;
|
||||
int part_table_idx;
|
||||
|
||||
main_shake_tree_p->target_pos = req_shake_tree_p->pos;
|
||||
main_shake_tree_p->item = req_shake_tree_p->item;
|
||||
main_shake_tree_p->tree_ut_x = req_shake_tree_p->ut_x;
|
||||
main_shake_tree_p->tree_ut_z = req_shake_tree_p->ut_z;
|
||||
main_shake_tree_p->bee_flag = FALSE;
|
||||
main_shake_tree_p->bee_angle_y = 0;
|
||||
main_shake_tree_p->bee_spawn_timer = 0;
|
||||
|
||||
Player_actor_SetupItem_Base1(actorx, mPlayer_ANIM_SHAKE1, -5.0f, &anim1_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base2(actorx, game, mPlayer_ANIM_SHAKE1, anim1_idx, 1.0f, 1.0f, 0.5f, -5.0f,
|
||||
cKF_FRAMECONTROL_STOP, part_table_idx);
|
||||
Player_actor_setup_main_Base(actorx, game);
|
||||
mISL_SetNowPlayerAction(mISL_PLAYER_ACTION_SHAKE_TREE);
|
||||
}
|
||||
|
||||
static void Player_actor_Movement_Shake_tree(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
|
||||
Player_actor_Movement_axe_common(actorx, &main_shake_tree_p->target_pos);
|
||||
actorx->world.angle.y = actorx->shape_info.rotation.y;
|
||||
}
|
||||
|
||||
static int Player_actor_CulcAnimation_Shake_tree(ACTOR* actorx, f32* last_anim0_cur_frame_p) {
|
||||
return Player_actor_CulcAnimation_Base2(actorx, last_anim0_cur_frame_p);
|
||||
}
|
||||
|
||||
static void Player_actor_SetEffect_Shake_tree(ACTOR* actorx, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame(&player->keyframe0.frame_control, 10.0f)) {
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
int ut_x = main_shake_tree_p->tree_ut_x;
|
||||
int ut_z = main_shake_tree_p->tree_ut_z;
|
||||
xyz_t* target_pos_p = &main_shake_tree_p->target_pos;
|
||||
mActor_name_t item = main_shake_tree_p->item;
|
||||
|
||||
if (IS_ITEM_COLLIDEABLE_TREE(item) != FALSE && ut_x >= 0 && ut_z >= 0) {
|
||||
if (Player_actor_Set_shake_tree_table(actorx, game, item, ut_x, ut_z, FALSE)) {
|
||||
Player_actor_sound_tree_yurasu(target_pos_p);
|
||||
Player_actor_set_viblation_Shake_tree();
|
||||
|
||||
if (Common_Get(clip).bg_item_clip != NULL &&
|
||||
Common_Get(clip).bg_item_clip->item_tree_fruit_drop_proc != NULL) {
|
||||
if (!IS_ITEM_BEE_TREE(item)) {
|
||||
xyz_t drop_pos;
|
||||
|
||||
Common_Get(clip).bg_item_clip->item_tree_fruit_drop_proc(item, ut_x, ut_z, &drop_pos);
|
||||
} else if (mPlib_able_birth_bee()) {
|
||||
main_shake_tree_p->bee_spawn_timer = 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SetSound_Shake_tree(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
|
||||
if (main_shake_tree_p->bee_flag) {
|
||||
if (Player_actor_Check_AnimationFrame(&player->keyframe0.frame_control, 18.0f)) {
|
||||
mBGMPsComp_make_ps_quiet(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_SearchAnimation_Shake_tree(ACTOR* actorx, GAME* game, f32 frame) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
|
||||
if (Player_actor_Check_AnimationFrame_PerfectEquel(actorx, frame) == FALSE) {
|
||||
Player_actor_SetEffect_Shake_tree(actorx, game);
|
||||
Player_actor_SetSound_Shake_tree(actorx);
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_Check_BirthBee_Shake_tree(ACTOR* actorx) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
int* spawn_timer_p = &main_shake_tree_p->bee_spawn_timer;
|
||||
|
||||
if (*spawn_timer_p > 0) {
|
||||
mActor_name_t item = main_shake_tree_p->item;
|
||||
int ut_x = main_shake_tree_p->tree_ut_x;
|
||||
int ut_z = main_shake_tree_p->tree_ut_z;
|
||||
|
||||
if (Player_actor_Check_BirthBee_common(actorx, item, ut_x, ut_z, &main_shake_tree_p->bee_angle_y)) {
|
||||
*spawn_timer_p = 0;
|
||||
main_shake_tree_p->bee_flag = TRUE;
|
||||
} else {
|
||||
(*spawn_timer_p)--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_ObjCheck_Shake_tree(ACTOR* actorx, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actorx, game);
|
||||
}
|
||||
|
||||
static void Player_actor_BGcheck_Shake_tree(ACTOR* actorx) {
|
||||
Player_actor_BGcheck_common_type1(actorx);
|
||||
}
|
||||
|
||||
static void Player_actor_request_proc_index_fromShake_tree(ACTOR* actorx, GAME* game, int end_flag) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actorx;
|
||||
mPlayer_main_shake_tree_c* main_shake_tree_p = &player->main_data.shake_tree;
|
||||
|
||||
if (end_flag) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
} else {
|
||||
cKF_SkeletonInfo_R_c* kf0_p = &player->keyframe0;
|
||||
cKF_FrameControl_c* fc0_p = &kf0_p->frame_control;
|
||||
f32 cur_frame = fc0_p->current_frame;
|
||||
|
||||
if (main_shake_tree_p->bee_flag) {
|
||||
if (cur_frame >= 30.0f) {
|
||||
Player_actor_request_main_shock_all(game, 24.0f, main_shake_tree_p->bee_angle_y, TRUE, FALSE,
|
||||
mPlayer_REQUEST_PRIORITY_21);
|
||||
}
|
||||
} else if (Player_actor_Check_AnimationFrame(fc0_p, 29.5f)) {
|
||||
Player_actor_SettleRequestMainIndexPriority(actorx);
|
||||
Player_actor_Set_status_for_bee(actorx, TRUE);
|
||||
} else if (cur_frame >= 30.0f) {
|
||||
if (Player_actor_GetController_move_percentX() || Player_actor_GetController_move_percentY()) {
|
||||
Player_actor_request_main_walk_all(game, NULL, -5.0f, 0, mPlayer_REQUEST_PRIORITY_1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Player_actor_main_Shake_tree(ACTOR* actorx, GAME* game) {
|
||||
f32 last_anim0_cur_frame;
|
||||
int end_flag;
|
||||
|
||||
Player_actor_Movement_Shake_tree(actorx);
|
||||
Player_actor_Reinput_force_position_angle(actorx, game);
|
||||
end_flag = Player_actor_CulcAnimation_Shake_tree(actorx, &last_anim0_cur_frame);
|
||||
Player_actor_SearchAnimation_Shake_tree(actorx, game, last_anim0_cur_frame);
|
||||
Player_actor_Check_BirthBee_Shake_tree(actorx);
|
||||
Player_actor_recover_lean_angle(actorx);
|
||||
Player_actor_set_tex_anime_pattern(actorx);
|
||||
Player_actor_ObjCheck_Shake_tree(actorx, game);
|
||||
Player_actor_BGcheck_Shake_tree(actorx);
|
||||
Player_actor_Item_main(actorx, game);
|
||||
Player_actor_request_proc_index_fromShake_tree(actorx, game, end_flag);
|
||||
}
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
int Player_actor_request_main_wait_all(GAME* game, f32 morph_speed, f32 _04, int flags, int now_index){
|
||||
|
||||
if(Player_actor_check_request_main_able(game, mPlayer_INDEX_WAIT, now_index)){
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_WAIT, now_index);
|
||||
static int Player_actor_request_main_wait_all(GAME* game, f32 morph_speed, f32 _04, int flags, int priority) {
|
||||
|
||||
if (Player_actor_check_request_main_able(game, mPlayer_INDEX_WAIT, priority)) {
|
||||
PLAYER_ACTOR* player = GET_PLAYER_ACTOR_GAME(game);
|
||||
|
||||
Player_actor_request_main_index(game, mPlayer_INDEX_WAIT, priority);
|
||||
|
||||
player->requested_main_index_data.wait.morph_speed = morph_speed;
|
||||
player->requested_main_index_data.wait.flags = flags;
|
||||
player->requested_main_index_data.wait._04 = _04;
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void Player_actor_request_main_wait_from_submenu(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_main_wait_from_submenu(ACTOR* actor, GAME* game) {
|
||||
Player_actor_request_main_wait_all(game, -5.0f, 0.0f, 0, 31);
|
||||
}
|
||||
|
||||
void Player_actor_setup_main_Wait(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_setup_main_Wait(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
int flags = player->requested_main_index_data.wait.flags;
|
||||
f32 speed = player->requested_main_index_data.wait.morph_speed;
|
||||
@@ -28,81 +27,81 @@ void Player_actor_setup_main_Wait(ACTOR* actor, GAME* game){
|
||||
int anim_idx;
|
||||
int part_table_idx;
|
||||
|
||||
if(flags & 4){
|
||||
player->main_data.wait.radio_exercise_command = 0;
|
||||
}
|
||||
else{
|
||||
player->main_data.wait.radio_exercise_command = 1;
|
||||
if (flags & 4) {
|
||||
player->main_data.wait.radio_exercise_command = 0;
|
||||
} else {
|
||||
player->main_data.wait.radio_exercise_command = 1;
|
||||
player->radio_exercise_continue_cmd_idx = -1;
|
||||
player->radio_exercise_cmd_timer = 0.0f;
|
||||
}
|
||||
|
||||
absspeed = ABS(speed);
|
||||
absspeed = ABS(speed);
|
||||
|
||||
Player_actor_SetupItem_Base1(actor, 0, -absspeed, &anim_idx, &part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, speed, part_table_idx);
|
||||
Player_actor_InitAnimation_Base1(actor, game, mPlayer_ANIM_WAIT1, anim_idx, 1.0f, 1.0f, 0.5f, speed,
|
||||
part_table_idx);
|
||||
|
||||
if (flags & 1) {
|
||||
Player_actor_SetEffect_forTakeout_item(actor, game);
|
||||
}
|
||||
|
||||
Player_actor_setup_main_Base(actor,game);
|
||||
Player_actor_setup_main_Base(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_Set_RadioExerciseCommand_Wait(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_Set_RadioExerciseCommand_Wait(ACTOR* actor, GAME* game) {
|
||||
PLAYER_ACTOR* player = (PLAYER_ACTOR*)actor;
|
||||
|
||||
Player_actor_Set_RadioExerciseCommand(actor, game, player->main_data.wait.radio_exercise_command);
|
||||
player->main_data.wait.radio_exercise_command = 0;
|
||||
}
|
||||
|
||||
void Player_actor_Movement_Wait(ACTOR* actor){
|
||||
static void Player_actor_Movement_Wait(ACTOR* actor) {
|
||||
Player_actor_Movement_Base_Braking_common(actor, 0.23925f);
|
||||
}
|
||||
|
||||
void Player_actor_CulcAnimation_Wait(ACTOR* actor){
|
||||
static void Player_actor_CulcAnimation_Wait(ACTOR* actor) {
|
||||
f32 base;
|
||||
|
||||
Player_actor_CulcAnimation_Base2(actor, &base);
|
||||
}
|
||||
|
||||
void Player_actor_ObjCheck_Wait(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_ObjCheck_Wait(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Excute_Corect_forStand(actor, game);
|
||||
}
|
||||
|
||||
void Player_actor_BGcheck_Wait(ACTOR* actor){
|
||||
static void Player_actor_BGcheck_Wait(ACTOR* actor) {
|
||||
Player_actor_BGcheck_common_type1(actor);
|
||||
}
|
||||
|
||||
void Player_actor_request_proc_index_fromWait(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_request_proc_index_fromWait(ACTOR* actor, GAME* game) {
|
||||
|
||||
if(!actor->bg_collision_check.result.on_ground){
|
||||
if (!actor->bg_collision_check.result.on_ground) {
|
||||
Player_actor_request_main_fall_all(game, -5.0f, 1, 1);
|
||||
}
|
||||
|
||||
Player_actor_CheckAndRequest_main_axe_all(game, 4);
|
||||
|
||||
|
||||
Player_actor_CheckAndRequest_main_axe_all(game, 4);
|
||||
|
||||
if (Player_actor_CheckController_forNet(game) != 0) {
|
||||
Player_actor_request_main_ready_net(game, 4);
|
||||
}
|
||||
|
||||
|
||||
if (Player_actor_CheckController_forRod(game) != 0) {
|
||||
Player_actor_request_main_ready_rod(game, 4);
|
||||
}
|
||||
|
||||
|
||||
Player_actor_CheckAndRequest_main_scoop_all(game, 4);
|
||||
Player_actor_CheckAndRequest_main_umbrella_all(game, 4);
|
||||
Player_actor_CheckAndRequest_main_fan_all(game, 1, 1, 4);
|
||||
Player_actor_CheckAndRequest_main_shake_tree_all(game);
|
||||
|
||||
|
||||
if ((Player_actor_GetController_move_percentX()) || (Player_actor_GetController_move_percentY())) {
|
||||
Player_actor_request_main_walk_all(game, NULL, -5.0f, 4, 1);
|
||||
}
|
||||
Player_actor_CheckAndRequest_main_pickup_all(game);
|
||||
Player_actor_CheckAndRequest_main_radio_exercise_all(game, 0);
|
||||
Player_actor_CheckAndRequest_main_radio_exercise_all(game, 0);
|
||||
}
|
||||
|
||||
void Player_actor_main_Wait(ACTOR* actor, GAME* game){
|
||||
static void Player_actor_main_Wait(ACTOR* actor, GAME* game) {
|
||||
Player_actor_Set_RadioExerciseCommand_Wait(actor, game);
|
||||
Player_actor_Movement_Wait(actor);
|
||||
Player_actor_Reinput_force_position_angle(actor, game);
|
||||
@@ -112,5 +111,5 @@ void Player_actor_main_Wait(ACTOR* actor, GAME* game){
|
||||
Player_actor_ObjCheck_Wait(actor, game);
|
||||
Player_actor_BGcheck_Wait(actor);
|
||||
Player_actor_Item_main(actor, game);
|
||||
Player_actor_request_proc_index_fromWait(actor, game);
|
||||
Player_actor_request_proc_index_fromWait(actor, game);
|
||||
}
|
||||
|
||||
@@ -1,53 +1,53 @@
|
||||
void Player_actor_set_viblation_common1(int total_frames, int attack_type, int sustain_type, int release_type,
|
||||
int attack_frames, int sustain_frames, int release_frames) {
|
||||
static void Player_actor_set_viblation_common1(int total_frames, int attack_type, int sustain_type, int release_type,
|
||||
int attack_frames, int sustain_frames, int release_frames) {
|
||||
mVibctl_entry(total_frames, attack_type, sustain_type, release_type, attack_frames, sustain_frames, release_frames,
|
||||
0.0f);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Dig_scoop() {
|
||||
static void Player_actor_set_viblation_Dig_scoop(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 7, 1, 0, 18, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Dig_scoop_stump() {
|
||||
static void Player_actor_set_viblation_Dig_scoop_stump(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 8, 1, 1, 60, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Fill_scoop() {
|
||||
Player_actor_set_viblation_common1(0x50, 1, 8, 1, 6, 60, 0);
|
||||
static void Player_actor_set_viblation_Fill_scoop(void) {
|
||||
Player_actor_set_viblation_common1(80, 1, 8, 1, 6, 60, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Reflect_scoop_hard() {
|
||||
static void Player_actor_set_viblation_Reflect_scoop_hard(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 9, 1, 3, 9, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Reflect_scoop_soft() {
|
||||
Player_actor_set_viblation_common1(0x5A, 1, 1, 1, 2, 4, 0);
|
||||
static void Player_actor_set_viblation_Reflect_scoop_soft(void) {
|
||||
Player_actor_set_viblation_common1(90, 1, 1, 1, 2, 4, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Swing_net() {
|
||||
static void Player_actor_set_viblation_Swing_net(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 1, 1, 2, 4, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Shake_tree() {
|
||||
static void Player_actor_set_viblation_Shake_tree(void) {
|
||||
Player_actor_set_viblation_common1(100, 0, 11, 5, 0, 34, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Axe_hard() {
|
||||
static void Player_actor_set_viblation_Axe_hard(void) {
|
||||
Player_actor_set_viblation_Reflect_scoop_hard();
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Axe_soft() {
|
||||
static void Player_actor_set_viblation_Axe_soft(void) {
|
||||
Player_actor_set_viblation_Reflect_scoop_soft();
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Axe_cut() {
|
||||
static void Player_actor_set_viblation_Axe_cut(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 10, 1, 3, 36, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Tumble() {
|
||||
static void Player_actor_set_viblation_Tumble(void) {
|
||||
Player_actor_set_viblation_common1(100, 1, 12, 1, 3, 14, 0);
|
||||
}
|
||||
|
||||
void Player_actor_set_viblation_Remove_grass() {
|
||||
static void Player_actor_set_viblation_Remove_grass(void) {
|
||||
Player_actor_set_viblation_common1(90, 1, 1, 1, 0, 1, 10);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user