mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-08 10:03:10 -04:00
Implement even more player states
This commit is contained in:
+26
-1
@@ -8,6 +8,32 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define Ac_Balloon_JOINT_NUM 8
|
||||
|
||||
typedef struct balloon_actor_s BALLOON_ACTOR;
|
||||
|
||||
struct balloon_actor_s {
|
||||
ACTOR actor_class;
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
s_xyz work[Ac_Balloon_JOINT_NUM];
|
||||
s_xyz morph[Ac_Balloon_JOINT_NUM];
|
||||
int _244;
|
||||
Mtx mtx[2][4];
|
||||
int main_mode;
|
||||
int saved_type;
|
||||
int setup_mode;
|
||||
int balloon_type;
|
||||
s_xyz angle;
|
||||
s16 lean;
|
||||
f32 start_frame;
|
||||
f32 speed;
|
||||
xyz_t pos;
|
||||
int _474;
|
||||
};
|
||||
|
||||
extern void Ac_Balloon_request_fly(ACTOR* actorx, GAME* game, int balloon_type, s_xyz* angle_p, s16 lean, xyz_t* pos_p,
|
||||
f32 start_frame, f32 speed);
|
||||
|
||||
extern ACTOR_PROFILE Balloon_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +41,3 @@ extern ACTOR_PROFILE Balloon_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -8,6 +8,29 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct gyo_release_actor_s GYO_RELEASE_ACTOR;
|
||||
|
||||
/* sizeof(GYO_RELEASE_ACTOR) == 0x1BC */
|
||||
struct gyo_release_actor_s {
|
||||
/* 0x000 */ ACTOR actor_class;
|
||||
/* 0x174 */ ACTOR* gyoei_actor_p;
|
||||
/* 0x178 */ int gyo_type;
|
||||
/* 0x17C */ int size_type;
|
||||
/* 0x180 */ int anime_frame;
|
||||
/* 0x184 */ int segment;
|
||||
/* 0x188 */ int _188;
|
||||
/* 0x18C */ ClObjPipe_c col_pipe;
|
||||
/* 0x1A8 */ s16 angle_xz;
|
||||
/* 0x1AA */ s16 angle_y;
|
||||
/* 0x1AC */ s16 angle_y_add;
|
||||
/* 0x1AE */ s16 exist_timer;
|
||||
/* 0x1B0 */ f32 shadow_scale;
|
||||
/* 0x1B4 */ u8 exist_flag;
|
||||
/* 0x1B5 */ u8 _1B5;
|
||||
/* 0x1B6 */ s16 revert_position_flag;
|
||||
/* 0x1B8 */ int revert_position_timer;
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Gyo_Release_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +38,3 @@ extern ACTOR_PROFILE Gyo_Release_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+77
-2
@@ -2,12 +2,88 @@
|
||||
#define AC_GYOEI_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "ac_tools.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define aGYO_MAX_GYOEI 2
|
||||
|
||||
enum {
|
||||
aGYO_TYPE_TEST,
|
||||
aGYO_TYPE_KASEKI,
|
||||
|
||||
aGYO_TYPE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
aGYO_ROD_NORMAL,
|
||||
aGYO_ROD_GOLDEN,
|
||||
|
||||
aGYO_ROD_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
aGYO_DRAW_TYPE_GYOEI,
|
||||
aGYO_DRAW_TYPE_FISH,
|
||||
|
||||
aGYO_DRAW_TYPE_NUM
|
||||
};
|
||||
|
||||
typedef struct gyo_ctrl_actor_s aGYO_CTRL_ACTOR;
|
||||
|
||||
typedef void (*aGYO_ACT_PROC)(ACTOR*, GAME*);
|
||||
|
||||
/* sizeof(aGYO_CTRL_ACTOR) == 0x250 */
|
||||
struct gyo_ctrl_actor_s {
|
||||
/* 0x000 */ TOOLS_ACTOR tools_class;
|
||||
/* 0x1CC */ ACTOR* linked_actor; /* Generally UKI_ACTOR */
|
||||
/* 0x1D0 */ int exist;
|
||||
/* 0x1D4 */ int draw_type;
|
||||
/* 0x1D8 */ int gyo_type;
|
||||
/* 0x1DC */ s16 size_type;
|
||||
/* 0x1E0 */ int action;
|
||||
/* 0x1E4 */ aGYO_ACT_PROC act_proc;
|
||||
/* 0x1E8 */ int anim_frame;
|
||||
/* 0x1EC */ f32 speed_step;
|
||||
/* 0x1F0 */ f32 speed;
|
||||
/* 0x1F4 */ f32 range;
|
||||
/* 0x1F8 */ int _1F8;
|
||||
/* 0x1FC */ ClObjPipe_c col_pipe;
|
||||
/* 0x218 */ int work0;
|
||||
/* 0x21C */ f32 fwork0;
|
||||
/* 0x220 */ f32 fwork1;
|
||||
/* 0x224 */ f32 fwork2;
|
||||
/* 0x228 */ f32 fwork3;
|
||||
/* 0x22C */ s16 swork0;
|
||||
/* 0x22E */ s16 swork1;
|
||||
/* 0x230 */ s16 swork2;
|
||||
/* 0x232 */ s16 swork3;
|
||||
/* 0x234 */ s16 swork4;
|
||||
/* 0x236 */ s16 move_counter;
|
||||
/* 0x238 */ s16 move_angle;
|
||||
/* 0x23A */ s16 pattern_subcounter;
|
||||
/* 0x23C */ s16 pattern_counter;
|
||||
/* 0x23E */ s16 touch_counter;
|
||||
/* 0x240 */ u16 gyo_flags;
|
||||
/* 0x242 */ u8 swim_flag;
|
||||
/* 0x243 */ u8 escape_flag;
|
||||
/* 0x244 */ int alpha;
|
||||
/* 0x248 */ int col_flags;
|
||||
/* 0x24C */ u8* overlay_p;
|
||||
};
|
||||
|
||||
typedef struct gyoei_actor_s GYOEI_ACTOR;
|
||||
|
||||
/* sizeof(GYOEI_ACTOR) == 0x628 */
|
||||
struct gyoei_actor_s {
|
||||
/* 0x000 */ ACTOR actor_class;
|
||||
/* 0x174 */ aGYO_CTRL_ACTOR ctrl[aGYO_MAX_GYOEI];
|
||||
/* 0x614 */ u8 exist[4];
|
||||
/* 0x618 */ int segment_type[4];
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Gyoei_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +91,3 @@ extern ACTOR_PROFILE Gyoei_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+41
-11
@@ -8,23 +8,53 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern ACTOR_PROFILE Uki_Profile;
|
||||
typedef void (*aUKI_SET_VALUE_PROC)(ACTOR* actorx, xyz_t pos, xyz_t pos_speed, int param_4, int command);
|
||||
typedef mActor_name_t (*aUKI_GET_FISH_TYPE)(ACTOR* actorx);
|
||||
|
||||
/* sizeof(UKI_ACTOR) == 0x2B8 */
|
||||
typedef struct actor_uki_s {
|
||||
ACTOR actor_class;
|
||||
u8 pad[0xA4];
|
||||
xyz_t right_hand_pos;
|
||||
xyz_t position_speed;
|
||||
int angle_speed_y;
|
||||
int command;
|
||||
u8 pad2[0x10];
|
||||
xyz_t rod_top_position;
|
||||
xyz_t left_hand_pos;
|
||||
/* 0x000 */ ACTOR actor_class;
|
||||
/* 0x174 */ ACTOR* child_actor;
|
||||
/* 0x178 */ ClObjPipe_c col_pipe;
|
||||
/* 0x194 */ f32 _194;
|
||||
/* 0x198 */ MtxF mtxf;
|
||||
/* 0x1D8 */ s16 proc;
|
||||
/* 0x1DC */ xyz_t parabola_vec[2];
|
||||
/* 0x1F4 */ xyz_t parabola_acc[2];
|
||||
/* 0x20C */ f32 range;
|
||||
/* 0x210 */ aUKI_SET_VALUE_PROC set_value_proc;
|
||||
/* 0x214 */ aUKI_GET_FISH_TYPE get_fish_type_proc;
|
||||
/* 0x218 */ xyz_t right_hand_pos;
|
||||
/* 0x224 */ xyz_t position_speed;
|
||||
/* 0x230 */ int angle_speed_y;
|
||||
/* 0x234 */ int command;
|
||||
/* 0x238 */ int status;
|
||||
/* 0x23C */ xyz_t cast_goal_point;
|
||||
/* 0x248 */ xyz_t rod_top_position;
|
||||
/* 0x254 */ xyz_t left_hand_pos;
|
||||
/* 0x260 */ u8 touched_flag;
|
||||
/* 0x261 */ u8 hit_water_flag;
|
||||
/* 0x262 */ s16 frame_timer;
|
||||
/* 0x264 */ s16 cast_timer;
|
||||
/* 0x266 */ s16 touch_timer;
|
||||
/* 0x268 */ xyz_t uki_pos;
|
||||
/* 0x274 */ xyz_t gyo_pos;
|
||||
/* 0x280 */ s_xyz uki_angle;
|
||||
/* 0x286 */ s16 uki_rot_speed;
|
||||
/* 0x288 */ int gyo_command;
|
||||
/* 0x28C */ int gyo_status;
|
||||
/* 0x290 */ int gyo_type;
|
||||
/* 0x294 */ f32 gyo_scale;
|
||||
/* 0x298 */ int color[3]; /* rgb */
|
||||
/* 0x2A4 */ u8 _2A4[0x10];
|
||||
/* 0x2B4 */ u8 coast_flag;
|
||||
/* 0x2B5 */ u8 _2B5;
|
||||
} UKI_ACTOR;
|
||||
|
||||
extern ACTOR_PROFILE Uki_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+26
-29
@@ -867,14 +867,14 @@ typedef struct player_request_outdoor_s {
|
||||
|
||||
typedef struct player_request_demo_wait_s {
|
||||
int umbrella_flag;
|
||||
int _04;
|
||||
u32 label;
|
||||
} mPlayer_request_demo_wait_c;
|
||||
|
||||
typedef struct player_request_demo_walk_s {
|
||||
f32 goal_pos_x;
|
||||
f32 goal_pos_z;
|
||||
f32 speed;
|
||||
int _0C;
|
||||
int wait_flag;
|
||||
} mPlayer_request_demo_walk_c;
|
||||
|
||||
typedef struct player_request_demo_geton_train_s {
|
||||
@@ -1187,7 +1187,7 @@ typedef struct player_request_release_creature_insect_s {
|
||||
} mPlayer_request_release_creature_insect_c;
|
||||
|
||||
typedef struct player_request_release_creature_balloon_s {
|
||||
int _00;
|
||||
int balloon_type;
|
||||
} mPlayer_request_release_creature_balloon_c;
|
||||
|
||||
typedef union {
|
||||
@@ -1198,6 +1198,7 @@ typedef union {
|
||||
|
||||
typedef struct player_request_release_creature_s {
|
||||
int type;
|
||||
int gold_scoop_flag;
|
||||
mPlayer_request_release_creature_u data;
|
||||
ACTOR* actor;
|
||||
} mPlayer_request_release_creature_c;
|
||||
@@ -1260,26 +1261,6 @@ typedef struct player_request_putin_scoop_from_submenu_s {
|
||||
int got_gold_scoop;
|
||||
} mPlayer_request_putin_scoop_from_submenu_data_c;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
int got_gold_scoop;
|
||||
s16 angle_y;
|
||||
s16 item;
|
||||
} mPlayer_request_release_creature_gyoei_from_submenu_c;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
int got_gold_scoop;
|
||||
xyz_t wpos;
|
||||
int insect_type;
|
||||
} mPlayer_request_release_creature_insect_from_submenu_c;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
int got_gold_scoop;
|
||||
int balloon_shape_type;
|
||||
} mPlayer_request_release_creature_balloon_from_submenu_c;
|
||||
|
||||
typedef struct {
|
||||
int _0;
|
||||
ACTOR* speak_actor;
|
||||
@@ -1288,9 +1269,6 @@ typedef struct {
|
||||
typedef union {
|
||||
mPlayer_request_give_from_submenu_c give_from_submenu;
|
||||
mPlayer_request_putin_scoop_from_submenu_data_c putin_scoop_from_submenu;
|
||||
mPlayer_request_release_creature_gyoei_from_submenu_c release_creature_gyoei_from_submenu;
|
||||
mPlayer_request_release_creature_insect_from_submenu_c release_creature_insect_from_submenu;
|
||||
mPlayer_request_release_creature_balloon_from_submenu_c release_creature_balloon_from_submenu;
|
||||
mPlayer_request_demo_wait_from_submenu_c demo_wait_from_submenu;
|
||||
mPlayer_request_return_demo_c return_demo;
|
||||
mPlayer_request_wait_c wait;
|
||||
@@ -1391,9 +1369,6 @@ typedef struct player_request_knock_door_s {
|
||||
typedef union {
|
||||
mPlayer_request_give_from_submenu_c give_from_submenu;
|
||||
mPlayer_request_putin_scoop_from_submenu_data_c putin_scoop_from_submenu;
|
||||
mPlayer_request_release_creature_gyoei_from_submenu_c release_creature_gyoei_from_submenu;
|
||||
mPlayer_request_release_creature_insect_from_submenu_c release_creature_insect_from_submenu;
|
||||
mPlayer_request_release_creature_balloon_from_submenu_c release_creature_balloon_from_submenu;
|
||||
mPlayer_request_demo_wait_from_submenu_c demo_wait_from_submenu;
|
||||
mPlayer_request_return_demo_c return_demo;
|
||||
mPlayer_request_return_outdoor_c return_outdoor;
|
||||
@@ -1748,6 +1723,19 @@ typedef struct player_main_putin_item_s {
|
||||
f32 timer;
|
||||
} mPlayer_main_putin_item_c;
|
||||
|
||||
typedef struct player_main_demo_wait_s {
|
||||
int effect_id;
|
||||
u32 label;
|
||||
} mPlayer_main_demo_wait_c;
|
||||
|
||||
typedef struct player_main_release_creature_s {
|
||||
int type;
|
||||
int golden_scoop_flag;
|
||||
ACTOR* release_actor_p;
|
||||
f32 timer;
|
||||
int actor_birth_flag;
|
||||
} mPlayer_main_release_creature_c;
|
||||
|
||||
typedef struct player_main_wash_car_s {
|
||||
int anime_idx;
|
||||
int change_anime_idx;
|
||||
@@ -1759,6 +1747,12 @@ typedef struct player_main_wash_car_s {
|
||||
int effect_flag;
|
||||
} mPlayer_main_wash_car_c;
|
||||
|
||||
typedef struct player_main_rotate_octagon_s {
|
||||
ACTOR* talk_actor_p;
|
||||
int turn_flag;
|
||||
int return_main_index;
|
||||
} mPlayer_main_rotate_octagon_c;
|
||||
|
||||
typedef struct player_main_swing_net_s {
|
||||
f32 swing_timer;
|
||||
} mPlayer_main_swing_net_c;
|
||||
@@ -1953,7 +1947,10 @@ typedef union {
|
||||
mPlayer_main_give_wait_c give_wait;
|
||||
mPlayer_main_takeout_item_c takeout_item;
|
||||
mPlayer_main_putin_item_c putin_item;
|
||||
mPlayer_main_demo_wait_c demo_wait;
|
||||
mPlayer_main_release_creature_c release_creature;
|
||||
mPlayer_main_wash_car_c wash_car;
|
||||
mPlayer_main_rotate_octagon_c rotate_octagon;
|
||||
mPlayer_main_shake_tree_c shake_tree;
|
||||
mPlayer_main_struggle_pitfall_c struggle_pitfall;
|
||||
mPlayer_main_stung_bee_c stung_bee;
|
||||
|
||||
+13
-9
@@ -15,10 +15,10 @@ extern PLAYER_ACTOR* get_player_actor_withoutCheck(GAME_PLAY* play);
|
||||
extern mPlayer_Controller_Data_c* mPlib_Get_controller_data_for_title_demo_p();
|
||||
extern void mPlib_SetData1_controller_data_for_title_demo(int btn_a, int btn_b, f32 stick_x, f32 stick_y);
|
||||
extern void mPlib_SetData2_controller_data_for_title_demo(mActor_name_t tool);
|
||||
extern void mPlib_Clear_controller_data_for_title_demo();
|
||||
extern void mPlib_Clear_controller_data_for_title_demo(void);
|
||||
extern void mPlib_request_main_invade_type1(GAME_PLAY* play);
|
||||
extern mActor_name_t mPlib_Get_itemNo_forWindow();
|
||||
extern int mPlib_check_able_change_camera_normal_index();
|
||||
extern int mPlib_check_able_change_camera_normal_index(void);
|
||||
extern void mPlib_request_main_refuse_type1(GAME* game);
|
||||
extern void mPlib_request_main_wait_type3(GAME* game);
|
||||
extern void mPlib_Set_able_force_speak_label(ACTOR* actor);
|
||||
@@ -27,7 +27,7 @@ extern int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z
|
||||
extern void mPlib_Set_goal_player_demo_walk(f32 goal_x, f32 goal_z, f32 speed);
|
||||
extern void mPlib_Set_able_hand_all_item_in_demo(s8 enable);
|
||||
extern void mPlib_change_player_cloth_info_lv2(Private_c* priv, mActor_name_t cloth_name);
|
||||
extern int mPlib_Get_address_able_display();
|
||||
extern int mPlib_Get_address_able_display(void);
|
||||
extern int mPlib_get_player_actor_main_index(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_AllWade(GAME_PLAY* play);
|
||||
extern int mPlib_request_main_demo_wait_type1(GAME* game, int param_2, void* param_3);
|
||||
@@ -53,19 +53,19 @@ extern void mPlib_request_main_give_from_submenu(mActor_name_t disp_item, int su
|
||||
extern int mPlib_Check_tree_shaken_big(const xyz_t* pos);
|
||||
extern int mPlib_Check_tree_shaken_little(const xyz_t* pos);
|
||||
extern int mPlib_request_main_recieve_wait_type1(GAME* game, mActor_name_t item, int counter_flag);
|
||||
extern int mPlib_able_player_warp_forEvent();
|
||||
extern int mPlib_Get_unable_wade();
|
||||
extern int mPlib_able_player_warp_forEvent(void);
|
||||
extern int mPlib_Get_unable_wade(void);
|
||||
extern s8 mPlib_Get_ItemNoToItemKind(mActor_name_t);
|
||||
extern void mPlib_Set_boat_angleZ(s16 angleZ);
|
||||
extern int mPlib_Get_end_player_demo_walk();
|
||||
extern int mPlib_Get_end_player_demo_walk(void);
|
||||
extern int mPlib_request_main_demo_geton_boat_type1(f32 goal_x, f32 goal_z, s16 angleY);
|
||||
extern int mPlib_request_main_demo_getoff_boat_standup_type1(const xyz_t* pos, s16 angleY);
|
||||
extern int mPlib_check_player_actor_main_index_RecieveMove(GAME* game);
|
||||
extern int mPlib_check_label_player_demo_wait(GAME* game, void* label);
|
||||
extern int mPlib_check_player_outdoor_start(GAME* game);
|
||||
extern void mPlib_Set_change_color_request();
|
||||
extern void mPlib_Set_change_color_request(void);
|
||||
extern int mPlib_check_player_open_umbrella(GAME_PLAY* play);
|
||||
extern int mPlib_Check_UKI_COMEBACK_STATUS();
|
||||
extern int mPlib_Check_UKI_COMEBACK_STATUS(void);
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove(GAME* game);
|
||||
extern int mPlib_request_main_close_furniture_type1(GAME* game);
|
||||
extern int mPlib_request_main_shock_type1(GAME* game, f32 time, s16 angle_y, int axe_swing);
|
||||
@@ -114,8 +114,12 @@ extern void mPlib_change_player_face(GAME* game);
|
||||
extern void mPlib_change_player_cloth_info(mPr_cloth_c* cloth_p, mActor_name_t cloth_item);
|
||||
extern int mPlib_Get_status_for_bee(void);
|
||||
extern int mPlib_request_main_demo_get_golden_item2_type1(GAME* game, int golden_item_type);
|
||||
extern void mPlib_Get_goal_player_demo_walk(f32* goal_pos_x, f32* goal_pos_z, f32* speed);
|
||||
extern int mPlib_Get_continue_player_after_demo_walk(void);
|
||||
extern void mPlib_Set_continue_player_after_demo_walk(int wait_flag);
|
||||
extern void mPlib_Set_end_player_demo_walk(int end_flag);
|
||||
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p(void);
|
||||
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerMdl(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerTex(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
|
||||
Reference in New Issue
Block a user