Implement & link ac_fuusen

This commit is contained in:
Cuyler36
2023-12-11 02:41:03 -05:00
parent 6373168c48
commit eb91519829
8 changed files with 649 additions and 4 deletions
+36
View File
@@ -3,11 +3,47 @@
#include "types.h"
#include "m_actor.h"
#include "c_keyframe.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aFSN_ESCAPE_TIMER 1554
enum {
aFSN_ACTION_BIRTH,
aFSN_ACTION_MOVING,
aFSN_ACTION_WOOD_STOP,
aFSN_ACTION_ESCAPE,
aFSN_ACTION_NUM
};
typedef struct fuusen_actor_s FUUSEN_ACTOR;
struct fuusen_actor_s {
ACTOR actor_class;
int action;
mActor_proc action_proc;
char* segment_p;
int type_idx;
int escape_timer;
int timer;
int count;
int look_up_flag;
int wind_idx;
s16 fuwafuwa_cycle;
f32 wind_power;
f32 y_offset;
u8 wind_change_flag;
cKF_SkeletonInfo_R_c keyframe;
s_xyz work[5];
s_xyz morph[5];
int _254;
Mtx mtx[2][3];
};
extern ACTOR_PROFILE Fuusen_Profile;
#ifdef __cplusplus
+9 -1
View File
@@ -19,10 +19,18 @@ typedef struct background_item_shadow_s {
typedef void (*bIT_SHADOW_DRAW_PROC)(GAME*, bIT_ShadowData_c*, int);
typedef int (*bIT_FRUIT_SET_PROC)(mActor_name_t item, int ut_x, int ut_z, s16 p0, s16 p1);
typedef void (*bIT_ITEM_TREE_FRUIT_DROP_PROC)(mActor_name_t item, int ut_x, int ut_z, xyz_t* pos);
typedef struct background_item_clip_s {
void* _00;
bIT_SHADOW_DRAW_PROC draw_shadow_proc;
void* _08[(0x54 - 0x08) / sizeof(void*)];
void* _08[(0x30 - 0x08) / sizeof(void*)];
bIT_FRUIT_SET_PROC fruit_set_proc;
void* _34;
bIT_ITEM_TREE_FRUIT_DROP_PROC item_tree_fruit_drop_proc;
void* _3C[(0x54 - 0x3C) / sizeof(void*)];
} bIT_Clip_c;
#ifdef __cplusplus
+1 -1
View File
@@ -439,7 +439,7 @@ typedef enum bank_id {
ACTOR_OBJ_BANK_397,
ACTOR_OBJ_BANK_398,
ACTOR_OBJ_BANK_399,
ACTOR_OBJ_BANK_400,
ACTOR_OBJ_BANK_FUUSEN,
ACTOR_OBJ_BANK_401,
ACTOR_OBJ_BANK_402,
ACTOR_OBJ_BANK_403,
+1
View File
@@ -259,6 +259,7 @@ extern int mCoBG_Attr2CheckPlaceNpc(u32 attribute);
extern int mCoBG_ExistHeightGap_KeepAndNow(xyz_t wpos);
extern void mCoBG_GetNorm_By3Point(xyz_t* norm, xyz_t* p0, xyz_t* p1, xyz_t* p2);
extern int mCoBG_SearchWaterLimitDistN(xyz_t* water_pos, xyz_t wpos, s16 angle, float max_dist, int divisor);
extern f32 mCoBG_GetBalloonGroundY(const xyz_t* pos);
extern void mCoBG_InitMoveBgData();
extern void mCoBG_InitBlockBgCheckMode();
+1 -2
View File
@@ -15,8 +15,7 @@ struct debug_display_s{
Debug_display* next;
};
extern void Debug_Display_init();
extern Debug_display* Debug_Display_new(f32 posX, f32 posY, f32 posZ, f32 scaleX, f32 scaleY, f32 scaleZ,
s16 rotX, s16 rotY, s16 rotZ, s8 r, s8 g, s8 b, s8 alpha, s16 type, GRAPH* graph);
extern Debug_display* Debug_Display_new(f32 posX, f32 posY, f32 posZ, f32 scaleX, f32 scaleY, f32 scaleZ, s16 rotX, s16 rotY, s16 rotZ, u8 r, u8 g, u8 b, u8 alpha, s16 type, GRAPH* graph);
extern void Debug_Display_output(GAME_PLAY* play);
+2
View File
@@ -46,6 +46,8 @@ extern int mPlib_able_submenu_type1(GAME* game);
extern void mPlib_request_main_demo_wait_from_submenu(ACTOR* force_speak_label);
extern void mPlib_Load_PlayerTexAndPallet(void* tex_p, void* pal_p, int idx);
extern void mPlib_request_main_give_from_submenu(mActor_name_t disp_item, int submenu_ovl, int present_flag, int counter_flag);
extern int mPlib_Check_tree_shaken_big(const xyz_t* pos);
extern int mPlib_Check_tree_shaken_little(const xyz_t* pos);
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();