mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-07-08 12:16:19 -04:00
Implement & link ac_fuusen
This commit is contained in:
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user