Merge pull request #462 from roeming/master

Link ac_museum_insect.c
This commit is contained in:
Cuyler36
2025-02-16 10:27:52 -05:00
committed by GitHub
44 changed files with 6450 additions and 926 deletions
-474
View File
@@ -1,11 +1,7 @@
#ifndef AC_MUSEUM_FISH_H
#define AC_MUSEUM_FISH_H
#include "types.h"
#include "m_actor.h"
#include "c_keyframe.h"
#include "libu64/u64types.h"
#include "ac_gyoei.h"
#ifdef __cplusplus
extern "C" {
@@ -13,476 +9,6 @@ extern "C" {
extern ACTOR_PROFILE Museum_Fish_Profile;
typedef struct _FISH_PRIVATE_DATA;
typedef void (*PRIV_FISH_CONSTRUCTOR)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_MOVE)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_DRAW)(struct _FISH_PRIVATE_DATA*, GAME*);
// typedef void (*PRIV_FISH_PROCESS)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_PROCESS)(struct _FISH_PRIVATE_DATA*, GAME*);
// unsure temp structs
typedef struct _MUSEUM_FISH_INIT_DATA {
f32 renderScale;
f32 _04;
f32 _08;
f32 _0C;
f32 _10;
f32 _14;
f32 _18;
f32 _1C;
f32 _20;
f32 _24;
f32 _28;
s16 activeFramesMin;
s16 activeFramesRange;
s16 _30;
} MUSEUM_FISH_INIT_DATA; // size: 0x34
#define artificial_padding(lastOffset, currentOffset, typeOfLastMember) \
u8 __##currentOffset##padding[currentOffset - lastOffset - sizeof(typeOfLastMember)]
// #define offsetof(structName, memberName) ((size_t) & (((structName*)0)->memberName))
typedef struct _YET_SKELETON {
cKF_SkeletonInfo_R_c _00; // offset 0, size 0x70
Mtx _70; // offset 70, size
artificial_padding(0x70, 0x2b0, Mtx);
Mtx _2b0;
artificial_padding(0x2b0, 0x46C, Mtx);
void* _46C;
artificial_padding(0x46C, 0x4F0, void*);
s_xyz _4F0;
artificial_padding(0x4F0, 0x514, s_xyz);
s_xyz _514;
artificial_padding(0x514, 0x526, s_xyz);
s_xyz _526;
artificial_padding(0x526, 0x538, s_xyz);
s_xyz _538;
// unused 2 byte padding here
xyz_t _540;
cKF_Skeleton_R_c* _54C;
cKF_Animation_R_c* _550[2];
} YET_SKELETON; // size 558
typedef struct _YET_SKELETON_2 {
YET_SKELETON _00;
f32 _558;
f32 _55C;
f32 _560;
f32 _564;
s16 _568;
s16 _56A;
s16 _56C;
} YET_SKELETON_2;
typedef enum fish_type MUSEUM_FISH_TYPE;
typedef struct _FISH_PRIVATE_DATA {
MUSEUM_FISH_INIT_DATA init_data;
PRIV_FISH_PROCESS currentProcess; // size:4
YET_SKELETON _38;
YET_SKELETON_2* _590;
struct _FISH_PRIVATE_DATA* _594;
struct _FISH_PRIVATE_DATA* _598;
MUSEUM_FISH_TYPE fishIDEnum;
xyz_t position;
xyz_t _5AC;
xyz_t _5B8;
artificial_padding(0x5B8, 0x5D0, xyz_t);
xyz_t _5D0;
xyz_t _5DC;
f32 _5E8;
f32 _5EC;
f32 _5F0;
f32 _5F4;
f32 _5F8;
f32 _5FC;
f32 _600;
f32 _604;
f32 _608;
s_xyz _60C;
s_xyz _612;
s_xyz _618;
s16 _61E;
s16 _620;
s16 _622;
s16 _624;
s16 activityFrameCount;
s16 savedActivityFrameCount;
s16 _62A;
s16 _62C;
s16 _62E_flags;
s16 group;
s16 _632;
s16 _634;
s16 _636;
s16 _638;
s16 _63A;
s16 _63C;
s16 _63E;
s16 _640;
s16 _642;
s16 _644;
s16 _646;
} MUSEUM_FISH_PRIVATE_DATA; // size 648
// Holds data for the underwater grass
typedef YET_SKELETON MUSEUM_FISH_KUSA_DATA;
typedef struct _FISH_DISPLAY_MSG_INFO {
s16 fishName;
s16 fishInfo;
} FISH_DISPLAY_MSG_INFO;
typedef struct _MUSEUM_FISH_ACTOR {
ACTOR actor; // offset: 0, size: 0x174
int _174;
MUSEUM_FISH_PRIVATE_DATA prvFish[aGYO_TYPE_NUM]; // offset: 0x178 size: 0xFB48
MUSEUM_FISH_KUSA_DATA prvKusa[14]; // offset: 0xFCB8 size: 0x4AD0
YET_SKELETON_2 _14788; // offset: 0x14788 size: 0x570
u8 _14cf8[16]; // temp
xyz_t lightPosition[2];
int numFishDisplayed; // offset: 0x14d20, size: 4
int fishDisplayMsgIter; // offset: 0x14d24, size: 4
FISH_DISPLAY_MSG_INFO fishDisplayMsgInfo[10]; // offset: 0x14d28, size: 4*10
s16 _14d50[20];
s16 _14d78[20];
artificial_padding(0x14d78, 0x14daa, s16[20]);
s16 _14daa[5];
s16 _14db4;
s16 _14db6; // offset: 0x14db6, size: 2
s16 lightID1; // offset: 0x14db8, size: 2
s16 lightID2; // offset: 0x14dba, size: 2
s16 lightPower[2]; // offset: 0x14dbc, size: 4
s16 _14dc0; // offset: 0x14dc0, size: 2
s16 _14dc2; // offset: 0x14dc2, size: 2
s16 _14dc4; // offset: 0x14dc4, size: 2
s16 _14dc8; // offset: 0x14dc8, size: 2
} MUSEUM_FISH_ACTOR; // size 14DCA
// ac_museum_fish.c_inc
void Museum_Fish_Prv_data_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game, int fishNum, int r6);
void Museum_Fish_Actor_ct(ACTOR* actor, GAME* game);
void Museum_Fish_Actor_dt(ACTOR* actor, GAME* game);
int Museum_Fish_GetMsgNo(ACTOR* actor);
BOOL Museum_Fish_Check_Talk_Distance(GAME* gamex, int index);
void Museum_Fish_Set_MsgFishInfo(ACTOR* actor, int param2);
void Museum_Fish_set_talk_info(ACTOR* actor);
void Museum_Fish_Talk_process(ACTOR* actor, GAME* game);
void Museum_Fish_Actor_move(ACTOR* actor, GAME* game);
void Museum_Fish_Suisou_draw(ACTOR* actor, GAME* game, int r5);
int kusa_before_disp(GAME* r3, cKF_SkeletonInfo_R_c* r4, int r5, Gfx** r6, u8* r7, void* arg, s_xyz* r9, xyz_t* r10);
void Museum_Fish_Kusa_Draw(ACTOR* actor, GAME* game, int r5);
void Museum_Fish_Actor_draw(ACTOR* actor, GAME* game);
BOOL mfish_cull_check(GAME* game, xyz_t* worldPos, f32 x, f32 y, f32 _y);
void mfish_point_ligh_pos_get(ACTOR* actorx, GAME* game, int r5);
void mfish_point_light_ct(ACTOR* actor, GAME* game);
void mfish_point_light_dt(ACTOR* r30, GAME* r31);
void mfish_point_light_mv(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_normal_light_set(ACTOR* actor, GAME* game);
// ac_museum_fish_base.c_inc
f32 Rnd_EX_f(f32 v1);
f32 Rnd_EX_fx(f32 v1);
void mfish_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
int mfish_PosWallCheck(MUSEUM_FISH_PRIVATE_DATA* priv, xyz_t* pos);
BOOL mfish_WallCheck(MUSEUM_FISH_PRIVATE_DATA* priv);
s16 mfish_get_hide_camera_angle(MUSEUM_FISH_PRIVATE_DATA* priv);
void mfish_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ground_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ground_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_base_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_onefish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_onefish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_before_disp(GAME*, cKF_SkeletonInfo_R_c*, int, Gfx**, u8*, void*, s_xyz*, xyz_t*);
void mfish_onefish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_BigFishObjCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_ObjBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex, f32 f1, f32 f2);
void Museum_Fish_DonkoBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_objchk_pos_set(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_BGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_Kusa_Check(MUSEUM_FISH_ACTOR* actor, GAME* game);
void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_body_wind_anime_play(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_get_player_angle(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game, s16* atanx, s16* atany, f32* distance);
BOOL mfish_peck_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_peck_wall_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_ground_peck_before_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_get_player_area(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_get_flow_vec(xyz_t* pos, MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
s16 mfish_get_escape_angle(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_move_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_hamon_make(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_afish.c_inc
void mfish_afish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_aroana.c_inc
void mfish_aroana_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_aroana_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_long_move_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_long_move_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_aroana_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_aroana_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_koi.c_inc
void mfish_koi_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4);
void mfish_koi_move_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_long_move_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_long_move_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_koi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_koi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kaseki.c_inc
void mfish_kaseki_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kaseki_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_move_wall_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_kaseki_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_kaseki_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_bass.c_inc
void mfish_bass_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4);
void mfish_bass_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_seafish.c_inc
void mfish_seafish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_seafish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_seafish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_tai.c_inc
void mfish_tai_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_tai_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_tai_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_sfish.c_inc
void mfish_small_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_small_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_sfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_small_fish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_gupi.c_inc
void mfish_gupi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_gupi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_gupi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_medaka.c_inc
void mfish_medaka_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_medaka_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_medaka_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kingyo.c_inc
void mfish_kingyo_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_peck_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_peck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_kingyo_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_kingyo_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_dojou.c_inc
void mfish_dojou_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_dojou_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_dojou_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_donko.c_inc
void mfish_donko_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_donko_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_donko_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_donko_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_big_fish.c_inc
void mfish_big_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_big_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_bfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_big_fish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_ito.c_inc
void mfish_ito_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ito_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_ito_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_ito_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_unagi.c_inc
void mfish_unagi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
s16 mfish_unagi_get_next_rail_type(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_unagi_aim_wind_angle_calc(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_unagi_rail_move_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_normal_to_reverse_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_normal_to_reverse(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move_reverse_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move_reverse(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_reverse_to_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_reverse_to_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_unagi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_unagi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_namazu.c_inc
void mfish_namazu_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_body_wind_anime_play(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_namazu_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
//! TODO: these should take (actor, game) because they're assigned to _34, but are statically called with just (actor)
void mfish_namazu_dummy_process_init();
void mfish_namazu_dummy_process();
void mfish_namazu_turn_process_init();
void mfish_namazu_turn_process();
void mfish_namazu_ground_sweep_process_init();
void mfish_namazu_ground_sweep_process();
void mfish_namazu_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_namazu_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_namazu_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_zarigani.c_inc
void mfish_zarigani_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_wait_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_wait_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_stand_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_stand_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_jump_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_jump_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_zarigani_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f,
void* arg, s_xyz* joint1, xyz_t* trans);
void mfish_zarigani_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kurage.c_inc
void mfish_kurage_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_hasu.c_inc
void mfish_hasu_ct(YET_SKELETON_2* actor, GAME* game);
void mfish_hasu_mv(YET_SKELETON_2* actor, GAME* game);
void mfish_hasu_dw(YET_SKELETON_2* actor, GAME* game);
void mfish_kaeru_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaeru_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
BOOL hasu_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f, void* arg,
s_xyz* joint1, xyz_t* trans);
BOOL hasu_after_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** joint_m, u8* joint_f, void* arg,
s_xyz* joint1, xyz_t* trans);
void mfish_kaeru_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
#ifdef __cplusplus
}
#endif
+521
View File
@@ -0,0 +1,521 @@
#ifndef AC_MUSEUM_FISH_PRIV_H
#define AC_MUSEUM_FISH_PRIV_H
#include "ac_museum_fish.h"
#include "m_msg.h"
#include "m_common_data.h"
#include "sys_matrix.h"
#include "m_player_lib.h"
#include "m_debug_mode.h"
#include "m_rcp.h"
#include "ac_gyoei.h"
#ifdef __cplusplus
extern "C" {
#endif
// found useful macros
#define MY_MAX(a, b) (((a) >= (b)) ? (a) : (b))
#define MY_CLAMP(v, l, h) MIN(MY_MAX((l), (v)), (h))
#define ARRAY_LEN(a) (sizeof(a) / sizeof(*a))
#define CALC_EASE(x) (1.0f - sqrtf(1.0f - (x)))
#define CALC_EASE2(x) CALC_EASE(CALC_EASE(x))
#define SHORT2DEG_ANGLE2(x) ((x) * (360.0f / 65536.0f))
#define RANDOMF_RANGE(min, max) ((f32)(min) + (f32)RANDOM_F((f32)(max) - (f32)(min)))
#define RANDOM2F_RANGE(min, max) ((f32)(min) + (f32)RANDOM2_F((f32)(max) - (f32)(min)))
#define RANDOM_RANGE(min, max) ((int)(min) + (int)RANDOM((int)(max) - (int)(min)))
#define RANDOM2_RANGE(min, max) ((int)(min) + (int)RANDOM2((int)(max) - (int)(min)))
#define artificial_padding(lastOffset, currentOffset, typeOfLastMember) \
u8 __##currentOffset##padding[currentOffset - lastOffset - sizeof(typeOfLastMember)]
typedef struct _FISH_PRIVATE_DATA;
typedef void (*PRIV_FISH_CONSTRUCTOR)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_MOVE)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_DRAW)(struct _FISH_PRIVATE_DATA*, GAME*);
typedef void (*PRIV_FISH_PROCESS)(struct _FISH_PRIVATE_DATA*, GAME*);
// struct decls
typedef struct _MUSEUM_FISH_INIT_DATA {
f32 renderScale;
f32 _04;
f32 _08;
f32 _0C;
f32 _10;
f32 _14;
f32 _18;
f32 _1C;
f32 _20;
f32 _24;
f32 _28;
s16 activeFramesMin;
s16 activeFramesRange;
s16 _30;
} MUSEUM_FISH_INIT_DATA; // size: 0x34
typedef struct _YET_SKELETON {
cKF_SkeletonInfo_R_c _00; // offset 0, size 0x70
Mtx _70; // offset 70, size
artificial_padding(0x70, 0x2b0, Mtx);
Mtx _2b0;
artificial_padding(0x2b0, 0x46C, Mtx);
void* _46C;
artificial_padding(0x46C, 0x4F0, void*);
s_xyz _4F0;
artificial_padding(0x4F0, 0x514, s_xyz);
s_xyz _514;
artificial_padding(0x514, 0x526, s_xyz);
s_xyz _526;
artificial_padding(0x526, 0x538, s_xyz);
s_xyz _538;
// unused 2 byte padding here
xyz_t _540;
cKF_Skeleton_R_c* _54C;
cKF_Animation_R_c* _550[2];
} YET_SKELETON; // size 558
typedef struct _YET_SKELETON_2 {
YET_SKELETON _00;
f32 _558;
f32 _55C;
f32 _560;
f32 _564;
s16 _568;
s16 _56A;
s16 _56C;
} YET_SKELETON_2;
typedef enum fish_type MUSEUM_FISH_TYPE;
typedef struct _FISH_PRIVATE_DATA {
MUSEUM_FISH_INIT_DATA init_data;
PRIV_FISH_PROCESS currentProcess; // size:4
YET_SKELETON _38;
YET_SKELETON_2* _590;
struct _FISH_PRIVATE_DATA* _594;
struct _FISH_PRIVATE_DATA* _598;
MUSEUM_FISH_TYPE fishIDEnum;
xyz_t position;
xyz_t _5AC;
xyz_t _5B8;
artificial_padding(0x5B8, 0x5D0, xyz_t);
xyz_t _5D0;
xyz_t _5DC;
f32 _5E8;
f32 _5EC;
f32 _5F0;
f32 _5F4;
f32 _5F8;
f32 _5FC;
f32 _600;
f32 _604;
f32 _608;
s_xyz _60C;
s_xyz _612;
s_xyz _618;
s16 _61E;
s16 _620;
s16 _622;
s16 _624;
s16 activityFrameCount;
s16 savedActivityFrameCount;
s16 _62A;
s16 _62C;
s16 _62E_flags;
s16 group;
s16 _632;
s16 _634;
s16 _636;
s16 _638;
s16 _63A;
s16 _63C;
s16 _63E;
s16 _640;
s16 _642;
s16 _644;
s16 _646;
} MUSEUM_FISH_PRIVATE_DATA; // size 648
// Holds data for the underwater grass
typedef YET_SKELETON MUSEUM_FISH_KUSA_DATA;
typedef struct _FISH_DISPLAY_MSG_INFO {
s16 fishName;
s16 fishInfo;
} FISH_DISPLAY_MSG_INFO;
typedef struct _MUSEUM_FISH_ACTOR {
ACTOR actor; // offset: 0, size: 0x174
int _174;
MUSEUM_FISH_PRIVATE_DATA prvFish[aGYO_TYPE_NUM]; // offset: 0x178 size: 0xFB48
MUSEUM_FISH_KUSA_DATA prvKusa[14]; // offset: 0xFCB8 size: 0x4AD0
YET_SKELETON_2 _14788; // offset: 0x14788 size: 0x570
u8 _14cf8[16]; // temp
xyz_t lightPosition[2];
int numFishDisplayed; // offset: 0x14d20, size: 4
int fishDisplayMsgIter; // offset: 0x14d24, size: 4
FISH_DISPLAY_MSG_INFO fishDisplayMsgInfo[10]; // offset: 0x14d28, size: 4*10
s16 _14d50[20];
s16 _14d78[20];
artificial_padding(0x14d78, 0x14daa, s16[20]);
s16 _14daa[5];
s16 _14db4;
s16 _14db6; // offset: 0x14db6, size: 2
s16 lightID1; // offset: 0x14db8, size: 2
s16 lightID2; // offset: 0x14dba, size: 2
s16 lightPower[2]; // offset: 0x14dbc, size: 4
s16 _14dc0; // offset: 0x14dc0, size: 2
s16 _14dc2; // offset: 0x14dc2, size: 2
s16 _14dc4; // offset: 0x14dc4, size: 2
s16 _14dc8; // offset: 0x14dc8, size: 2
} MUSEUM_FISH_ACTOR; // size 14DCA
// data
extern ACTOR_PROFILE Museum_Fish_Profile;
// technically static, but this helps with vscode includes
extern xyz_t suisou_pos[5];
extern int kusa_group_tbl[14];
extern xyz_t kusa_pos[14];
extern xyz_t hasu_pos;
extern xyz_t suisou_awa_pos[20];
extern s16 suisou_awa_group[20];
extern cKF_Skeleton_R_c* mfish_model_tbl[40];
extern cKF_Animation_R_c* mfish_anime_init_tbl[40];
extern MUSEUM_FISH_INIT_DATA mfish_init_data[40];
extern s16 mfish_group_tbl[40];
extern PRIV_FISH_CONSTRUCTOR mfish_ct[40];
extern PRIV_FISH_MOVE mfish_mv[40];
extern PRIV_FISH_DRAW mfish_dw[40];
extern float kusa_start_frame[14];
// functions
// ac_museum_fish.c_inc
void Museum_Fish_Prv_data_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game, int fishNum, int r6);
void Museum_Fish_Actor_ct(ACTOR* actor, GAME* game);
void Museum_Fish_Actor_dt(ACTOR* actor, GAME* game);
int Museum_Fish_GetMsgNo(ACTOR* actor);
BOOL Museum_Fish_Check_Talk_Distance(GAME* gamex, int index);
void Museum_Fish_Set_MsgFishInfo(ACTOR* actor, int param2);
void Museum_Fish_set_talk_info(ACTOR* actor);
void Museum_Fish_Talk_process(ACTOR* actor, GAME* game);
void Museum_Fish_Actor_move(ACTOR* actor, GAME* game);
void Museum_Fish_Suisou_draw(ACTOR* actor, GAME* game, int r5);
BOOL kusa_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape, u8* joint_flags,
void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void Museum_Fish_Kusa_Draw(ACTOR* actor, GAME* game, int r5);
void Museum_Fish_Actor_draw(ACTOR* actor, GAME* game);
BOOL mfish_cull_check(GAME* game, xyz_t* worldPos, f32 x, f32 y, f32 _y);
void mfish_point_ligh_pos_get(ACTOR* actorx, GAME* game, int r5);
void mfish_point_light_ct(ACTOR* actor, GAME* game);
void mfish_point_light_dt(ACTOR* r30, GAME* r31);
void mfish_point_light_mv(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_normal_light_set(ACTOR* actor, GAME* game);
// ac_museum_fish_base.c_inc
f32 Rnd_EX_f(f32 v1);
f32 Rnd_EX_fx(f32 v1);
void mfish_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
int mfish_PosWallCheck(MUSEUM_FISH_PRIVATE_DATA* priv, xyz_t* pos);
BOOL mfish_WallCheck(MUSEUM_FISH_PRIVATE_DATA* priv);
s16 mfish_get_hide_camera_angle(MUSEUM_FISH_PRIVATE_DATA* priv);
void mfish_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ground_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ground_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_base_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_onefish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_onefish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape, u8* joint_flags,
void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_onefish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ani_base_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_BigFishObjCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_ObjBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex, f32 f1, f32 f2);
void Museum_Fish_DonkoBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_objchk_pos_set(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_BGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void Museum_Fish_Kusa_Check(MUSEUM_FISH_ACTOR* actor, GAME* game);
void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_body_wind_anime_play(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_get_player_angle(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game, s16* atanx, s16* atany, f32* distance);
BOOL mfish_peck_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_peck_wall_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_ground_peck_before_check(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_get_player_area(MUSEUM_FISH_ACTOR* actor, GAME* game);
void mfish_get_flow_vec(xyz_t* pos, MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
s16 mfish_get_escape_angle(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_move_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_hamon_make(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_afish.c_inc
void mfish_afish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_afish_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_afish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_aroana.c_inc
void mfish_aroana_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_aroana_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_long_move_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_aroana_long_move_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_aroana_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_aroana_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_aroana_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_koi.c_inc
void mfish_koi_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4);
void mfish_koi_move_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_peck_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_long_move_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_koi_long_move_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_koi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_koi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_koi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kaseki.c_inc
void mfish_kaseki_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kaseki_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_move_wall_smooth(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaseki_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_kaseki_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_kaseki_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_bass.c_inc
void mfish_bass_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4);
void mfish_bass_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_bass_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_bass_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_seafish.c_inc
void mfish_seafish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_seafish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_seafish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_seafish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_tai.c_inc
void mfish_tai_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_tai_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_tai_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_tai_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_sfish.c_inc
void mfish_small_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_sfish_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_small_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_sfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_small_fish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_gupi.c_inc
void mfish_gupi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_gupi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_gupi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_gupi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_medaka.c_inc
void mfish_medaka_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_medaka_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_medaka_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_medaka_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kingyo.c_inc
void mfish_kingyo_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_peck_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_peck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kingyo_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_kingyo_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_kingyo_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_dojou.c_inc
void mfish_dojou_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_dojou_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_dojou_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_dojou_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_donko.c_inc
void mfish_donko_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_donko_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_donko_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_donko_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_big_fish.c_inc
void mfish_big_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_big_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_bfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_big_fish_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_ito.c_inc
void mfish_ito_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_ito_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_ito_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_ito_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_unagi.c_inc
void mfish_unagi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
s16 mfish_unagi_get_next_rail_type(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_unagi_aim_wind_angle_calc(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_unagi_rail_move_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_normal_to_reverse_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_normal_to_reverse(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move_reverse_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_rail_move_reverse(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_reverse_to_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_reverse_to_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_unagi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_unagi_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_unagi_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_namazu.c_inc
void mfish_namazu_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_body_wind_anime_play(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_namazu_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_namazu_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_namazu_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_ground_sweep_process_init(MUSEUM_FISH_PRIVATE_DATA* actor);
void mfish_namazu_ground_sweep_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_namazu_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_namazu_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_namazu_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_zarigani.c_inc
void mfish_zarigani_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_wait_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_wait_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_stand_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_stand_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_jump_process_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_jump_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_zarigani_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
BOOL mfish_zarigani_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape,
u8* joint_flags, void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_zarigani_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_kurage.c_inc
void mfish_kurage_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_normal_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_turn_init(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
void mfish_kurage_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game);
// ac_museum_fish_hasu.c_inc
void mfish_hasu_ct(YET_SKELETON_2* actor, GAME* game);
void mfish_hasu_mv(YET_SKELETON_2* actor, GAME* game);
void mfish_hasu_dw(YET_SKELETON_2* actor, GAME* game);
void mfish_kaeru_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
void mfish_kaeru_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
BOOL hasu_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape, u8* joint_flags,
void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
BOOL hasu_after_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_idx, Gfx** joint_shape, u8* joint_flags,
void* arg, s_xyz* joint_rot, xyz_t* joint_pos);
void mfish_kaeru_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex);
#ifdef __cplusplus
}
#endif
#endif // !AC_MUSEUM_FISH_PRIV_H
-2
View File
@@ -1,7 +1,6 @@
#ifndef AC_MUSEUM_INSECT_H
#define AC_MUSEUM_INSECT_H
#include "types.h"
#include "m_actor.h"
#ifdef __cplusplus
@@ -15,4 +14,3 @@ extern ACTOR_PROFILE Museum_Insect_Profile;
#endif
#endif
+389
View File
@@ -0,0 +1,389 @@
#ifndef AC_MUSEUM_INSECT_PRIV_H
#define AC_MUSEUM_INSECT_PRIV_H
#include "ac_museum_insect.h"
#include "m_msg.h"
#include "m_common_data.h"
#include "sys_matrix.h"
#include "m_player_lib.h"
#include "m_debug_mode.h"
#include "m_rcp.h"
#include "ac_insect_h.h"
#ifdef __cplusplus
extern "C" {
#endif
#define artificial_padding(lastOffset, currentOffset, typeOfLastMember) \
u8 __##currentOffset##padding[currentOffset - lastOffset - sizeof(typeOfLastMember)]
#define CALC_EASE(x) (1.0f - sqrtf(1.0f - (x)))
#define CALC_EASE2(x) CALC_EASE(CALC_EASE(x))
struct _MUSEUM_INSECT_PRIVATE_DATA;
typedef void (*PRIV_INSECT_PROCESS)(struct _MUSEUM_INSECT_PRIVATE_DATA*, GAME*);
typedef struct _MUSEUM_INSECT_SKELETON {
cKF_SkeletonInfo_R_c _00;
Mtx _70;
artificial_padding(0x70, 0x170, Mtx);
Mtx _170;
artificial_padding(0x170, 0x270, Mtx);
s_xyz _270;
artificial_padding(0x270, 0x288, s_xyz);
s_xyz _288;
artificial_padding(0x288, 0x2A8, s_xyz);
cKF_Skeleton_R_c* _2A8;
cKF_Animation_R_c* _2AC;
} MUSEUM_INSECT_SKELETON;
typedef struct _MUSEUM_INSECT_PRIVATE_DATA {
int _00;
PRIV_INSECT_PROCESS _04;
MUSEUM_INSECT_SKELETON* _08;
f32 _0C;
f32 _10;
f32 _14; // scale
f32 _18;
xyz_t _1C;
xyz_t _28;
xyz_t _34;
f32 _40;
xyz_t _44;
int _50;
int _54;
f32 _58;
union {
f32 _5C;
struct {
s16 _5C_s16;
s16 _5E_s16;
};
};
f32 _60;
artificial_padding(0x60, 0x68, f32);
s_xyz _68;
s16 _6E;
s16 _70;
s16 _72;
s16 _74;
s16 _76;
s16 _78;
s16 _7A;
s16 _7C;
s16 _7E;
s16 _80;
s16 _82;
artificial_padding(0x82, 0x8C, s16);
s16 _8C;
s16 _8E;
int _90;
} MUSEUM_INSECT_PRIVATE_DATA;
typedef struct _INSECT_DISPLAY_MSG_INFO {
s16 insectName;
s16 insectInfo;
} INSECT_DISPLAY_MSG_INFO;
typedef struct _MUSEUM_INSECT_ACTOR {
ACTOR actor; // offset: 0x0
MUSEUM_INSECT_PRIVATE_DATA privInsects[aINS_INSECT_TYPE_NUM]; // offset: 0x174
MUSEUM_INSECT_PRIVATE_DATA _1894[6]; // offset: 0x1894
MUSEUM_INSECT_PRIVATE_DATA _1CA0[15]; // offset: 0x1CA0
MUSEUM_INSECT_SKELETON _24B8[4]; // offset: 0x24B8
int _2F78; // offset: 0x2F78
int _2F7C; // offset: 0x2F7C
INSECT_DISPLAY_MSG_INFO _2F80[7]; // offset: 0x2F82
s16 _2F9C[5]; // offset: 0x2F9C
} MUSEUM_INSECT_ACTOR;
// bss
extern MUSEUM_INSECT_ACTOR* MI_Control_Actor;
// data
extern rgba_t window_color;
extern Gfx *m_monshiro_disp_tbl[], *m_monki_disp_tbl[], *m_ageha_disp_tbl[], *m_ohmurasaki_disp_tbl[],
*m_minmin_disp_tbl[], *m_tukutuku_disp_tbl[], *m_higurashi_disp_tbl[], *m_abura_disp_tbl[], *m_shiokara_disp_tbl[],
*m_akiakane_disp_tbl[], *m_ginyanma_disp_tbl[], *m_oniyanma_disp_tbl[], *m_syouryou_disp_tbl[],
*m_tonosama_disp_tbl[], *m_koorogi_disp_tbl[], *m_kirigirisu_disp_tbl[], *m_suzumushi_disp_tbl[],
*m_matumushi_disp_tbl[], *m_tentou_disp_tbl[], *m_nanahoshi_disp_tbl[], *m_kamakiri_disp_tbl[],
*m_maimai_disp_tbl[], *m_hachi_disp_tbl[], *m_kanabun_disp_tbl[], *m_kabuto_disp_tbl[], *m_hirata_disp_tbl[],
*m_tamamushi_disp_tbl[], *m_gomadara_disp_tbl[], *m_nokogiri_disp_tbl[], *m_miyama_disp_tbl[], *m_okuwa_disp_tbl[],
*m_amenbo_disp_tbl[], *m_mino_disp_tbl[], *m_kumo_disp_tbl[], *m_goki_disp_tbl[], *m_genji_disp_tbl[],
*m_dango_disp_tbl[], *m_ari_disp_tbl[], *m_okera_disp_tbl[], *m_ka_disp_tbl[];
extern Gfx** minsect_mdl[aINS_INSECT_TYPE_NUM];
extern PRIV_INSECT_PROCESS minsect_ct[aINS_INSECT_TYPE_NUM];
extern PRIV_INSECT_PROCESS minsect_mv[aINS_INSECT_TYPE_NUM];
extern PRIV_INSECT_PROCESS minsect_dw[aINS_INSECT_TYPE_NUM];
extern f32 minsect_shadow_scale_tbl[aINS_INSECT_TYPE_NUM];
extern int active_time_tbl[aINS_INSECT_TYPE_NUM];
extern int relax_time_tbl[aINS_INSECT_TYPE_NUM];
extern xyz_t flower_pos[8];
extern xyz_t tree_pos[8];
extern xyz_t rock_pos[2];
extern xyz_t tonbo_rock_pos[6];
extern xyz_t tentou_flower_pos[4];
extern xyz_t hachi_base_pos;
extern xyz_t kabuto_base_pos[9];
extern cKF_Skeleton_R_c* kuwagata_model_tbl[4];
extern cKF_Animation_R_c* kuwagata_anim_tbl[4];
extern xyz_t kuwagata_base_pos[4];
extern xyz_t amenbo_center_pos;
extern xyz_t rail_pos[6];
extern xyz_t ari_rail_pos[3];
extern f32 minsect_scale_tbl[aINS_INSECT_TYPE_NUM];
// rodata
extern const f32 base_high_tbl[4];
extern const s16 aim_angle_tbl[6];
extern const xyz_t mino_base_pos;
extern const xyz_t mino_top_pos;
extern const xyz_t mino_bottom_pos;
extern const xyz_t kumo_base_pos;
extern const xyz_t kumo_top_pos;
extern const xyz_t kumo_bottom_pos;
extern const xyz_t base_genji_pos;
extern const xyz_t genji_mizu_pos;
extern const xyz_t okera_base_pos;
// ac_museum_insect.c
int Museum_Insect_GetMsgNo(ACTOR* actorx);
int Museum_Insect_Check_Talk_Distance(GAME* game, int i);
void Museum_Insect_Set_MsgInsectInfo(ACTOR* actor, int i);
void Museum_Insect_set_talk_info(ACTOR* actor);
void Museum_Insect_Talk_process(ACTOR* actor, GAME* game);
void Museum_Insect_Actor_ct(ACTOR* actor, GAME* game);
void Museum_Insect_Actor_dt(ACTOR* actor, GAME* game);
void Museum_Insect_Actor_move(ACTOR* actor, GAME* game);
void Museum_Insect_Actor_draw(ACTOR* actor, GAME* game);
// ac_museum_insect_base.c_inc
void mID_insect_moveF(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_amenbo_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_amenbo_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_amenbo_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void ari_alone_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void ari_alone_make(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void ari_alone_dt(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void ari_alone_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void ari_alone_draw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_ari_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_ari_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_ari_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_draw_shadow(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_fly_BGCheck(MUSEUM_INSECT_PRIVATE_DATA* actor, f32 f1, f32 f2);
void minsect_garden_BGCheck(MUSEUM_INSECT_PRIVATE_DATA* actor, f32 f1, f32 f2);
void minsect_flower_BGCheck(MUSEUM_INSECT_PRIVATE_DATA* actor, xyz_t* p);
void minsect_goki_BGCheck(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_kanban_BGCheck(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_tree_ObjCheck(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_rock_ObjCheck(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_batta_ObjCheck(MUSEUM_INSECT_PRIVATE_DATA* actor);
BOOL get_now_mind_flag(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void set_relax_active_time(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_chou.c_inc
void minsect_chou_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_normal_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_normal_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_aim_flower_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_aim_flower_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_flower_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_flower_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_fly_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_fly_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_chou_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_semi.c_inc
void minsect_semi_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_semi_hane_anime(MUSEUM_INSECT_PRIVATE_DATA* actor);
void mi_semi_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_semi_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_semi_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_tonbo.c_inc
void minsect_tonbo_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tonbo_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
BOOL minsect_tonbo_bg_check(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_near_target_set(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_rock_target_set(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game, xyz_t* p);
BOOL minsect_tonbo_suprised_rest_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
f32 minsect_tonbo_acc_change(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_tonbo_max_speed_set(MUSEUM_INSECT_PRIVATE_DATA* actor);
f32 minsect_tonbo_aim_distance_set(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_tonbo_aim_angle_check(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_tonbo_normal_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_normal_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_aim_rock_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_aim_rock_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_rock_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_rock_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_rock_wait_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_rock_wait_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_fly_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_fly_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tonbo_MoveF(MUSEUM_INSECT_PRIVATE_DATA* actor);
// ac_museum_insect_batta.c_inc
void mi_batta_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_batta_suzumushi_hane_anime(MUSEUM_INSECT_PRIVATE_DATA* actor);
void mi_batta_hane_anime(MUSEUM_INSECT_PRIVATE_DATA* actor);
void minsect_batta_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_normal_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_normal_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_silent_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_silent_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_jump_wait_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_jump_wait_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_jump_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_jump_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_batta_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_tentou.c_inc
void mi_tentou_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_kama_anime(MUSEUM_INSECT_PRIVATE_DATA* actor);
void mi_tentou_wait_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_wait(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_menace_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_menace(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_tentou_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_tentou_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tentou_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_tentou_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_hachi.c_inc
void mi_hachi_hane_anime(MUSEUM_INSECT_PRIVATE_DATA* actor);
void mi_hachi_mitu_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_mitu(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_wait_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_wait(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_hachi_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_hachi_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_hachi_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_hachi_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_kabuto.c_inc
void minsect_kabuto_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kabuto_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kabuto_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_kuwagata.c_inc
void mi_kuwagata_rensa_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_rensa(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_wait_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_wait(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_battle_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_battle(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_menace_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_menace(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_attack_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_attack(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_kuwagata_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_kuwagata_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kuwagata_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kuwagata_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_mino.c_inc
void minsect_mino_up_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_up(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_down_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_down(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_check_dush_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_furiko(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_wait_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_wait(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_hineri(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_mino_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_mino_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_kumo.c_inc
void minsect_kumo_hide_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_hide(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_up_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_up(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_down_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_down(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_furiko(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_wait_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_wait(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_hineri(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_kumo_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_kumo_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_goki.c_inc
void minsect_goki_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
BOOL goki_player_check(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void goki_wall_hit_angle_corect_sub(MUSEUM_INSECT_PRIVATE_DATA* actor, int angle);
void goki_wall_hit_angle_corect(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void goki_set_talk_info_init(ACTOR* actor);
void goki_talk_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void goki_talk_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_goki_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_goki_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_genji.c_inc
void mi_genji_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void genji_light_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game, s16 r5);
void genji_light_make(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game, s16 i);
void genji_light_anime(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void genji_light_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void genji_light_draw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_genji_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_genji_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_genji_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_dango.c_inc
void mi_dango_defence_anime(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_move_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_move(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_defence_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_defence(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void mi_dango_setupAction(MUSEUM_INSECT_PRIVATE_DATA* actor, int r4, GAME* game);
void minsect_dango_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_dango_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_dango_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_okera.c_inc
void mi_okera_check_player(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_okera_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_up_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_up_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_normal_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_normal_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_down_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_down_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_wait_process_init(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void okera_dig_wait_process(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_okera_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_okera_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
// ac_museum_insect_ka.c_inc
void minsect_ka_ct(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_ka_mv(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
void minsect_ka_dw(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game);
#ifdef __cplusplus
}
#endif
#endif