moving common data out to new header, renamed disp function names

This commit is contained in:
roeming
2025-02-07 09:53:17 -05:00
parent 66325624aa
commit ff808840f4
24 changed files with 840 additions and 920 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
+13 -171
View File
@@ -1,24 +1,4 @@
#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"
// 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)))
#include "ac_museum_fish_priv.h"
// extern data
// clang-format off
@@ -115,7 +95,6 @@ extern cKF_Animation_R_c
cKF_ba_r_obj_museum5_kusa3;
// data
MUSEUM_FISH_ACTOR* MF_Control_Actor;
/* Init stuff */
@@ -494,134 +473,6 @@ PRIV_FISH_DRAW mfish_dw[40] = {
/* ARAPAIMA */ mfish_big_fish_dw
};
xyz_t unagi_rail_pos[25] = {
{ 228.0f, 57.0f, 192.0f },
{ 231.0f, 57.0f, 203.0f },
{ 237.0f, 57.0f, 215.0f },
{ 245.0f, 58.0f, 225.0f },
{ 252.0f, 59.0f, 233.0f },
{ 254.0f, 60.0f, 245.0f },
{ 248.0f, 60.0f, 255.0f },
{ 238.0f, 60.0f, 256.0f },
{ 231.0f, 60.0f, 247.0f },
{ 222.0f, 60.0f, 240.0f },
{ 212.0f, 60.0f, 243.0f },
{ 203.0f, 60.0f, 249.0f },
{ 196.0f, 60.0f, 248.0f },
{ 191.0f, 60.0f, 241.0f },
{ 191.0f, 60.0f, 234.0f },
{ 187.0f, 60.0f, 223.0f },
{ 183.0f, 60.0f, 212.0f },
{ 181.0f, 60.0f, 203.0f },
{ 182.0f, 57.0f, 191.0f },
{ 187.0f, 56.0f, 183.0f },
{ 193.0f, 56.0f, 176.0f },
{ 201.0f, 56.0f, 172.0f },
{ 209.0f, 56.0f, 173.0f },
{ 216.0f, 56.0f, 176.0f },
{ 221.0f, 56.0f, 182.0f }
};
xyz_t unagi_rail_pos2[20] = {
{ 228.0f, 57.0f, 192.0f },
{ 236.0f, 57.0f, 201.0f },
{ 244.0f, 57.0f, 204.0f },
{ 250.0f, 58.0f, 213.0f },
{ 254.0f, 59.0f, 225.0f },
{ 250.0f, 60.0f, 238.0f },
{ 243.0f, 60.0f, 242.0f },
{ 235.0f, 60.0f, 238.0f },
{ 226.0f, 60.0f, 233.0f },
{ 215.0f, 60.0f, 229.0f },
{ 205.0f, 60.0f, 228.0f },
{ 198.0f, 60.0f, 229.0f },
{ 191.0f, 60.0f, 227.0f },
{ 186.0f, 60.0f, 222.0f },
{ 181.0f, 60.0f, 216.0f },
{ 181.0f, 60.0f, 207.0f },
{ 184.0f, 60.0f, 196.0f },
{ 191.0f, 60.0f, 186.0f },
{ 201.0f, 57.0f, 177.0f },
{ 213.0f, 56.0f, 178.0f }
};
xyz_t unagi_rail_pos3[25] = {
{ 228.0f, 57.0f, 192.0f },
{ 231.0f, 57.0f, 203.0f },
{ 229.0f, 57.0f, 213.0f },
{ 222.0f, 58.0f, 225.0f },
{ 212.0f, 59.0f, 226.0f },
{ 204.0f, 60.0f, 227.0f },
{ 197.0f, 60.0f, 230.0f },
{ 193.0f, 60.0f, 236.0f },
{ 195.0f, 60.0f, 246.0f },
{ 201.0f, 60.0f, 253.0f },
{ 212.0f, 60.0f, 256.0f },
{ 222.0f, 60.0f, 255.0f },
{ 237.0f, 60.0f, 254.0f },
{ 243.0f, 60.0f, 246.0f },
{ 240.0f, 60.0f, 232.0f },
{ 232.0f, 60.0f, 227.0f },
{ 223.0f, 60.0f, 225.0f },
{ 209.0f, 60.0f, 225.0f },
{ 198.0f, 60.0f, 220.0f },
{ 190.0f, 60.0f, 209.0f },
{ 187.0f, 60.0f, 196.0f },
{ 191.0f, 60.0f, 184.0f },
{ 197.0f, 60.0f, 178.0f },
{ 207.0f, 59.0f, 173.0f },
{ 221.0f, 57.0f, 180.0f }
};
xyz_t unagi_normal_to_reverse_rail_pos[12] = {
{ 228.0f, 57.0f, 192.0f },
{ 236.0f, 57.0f, 201.0f },
{ 244.0f, 57.0f, 204.0f },
{ 250.0f, 58.0f, 213.0f },
{ 254.0f, 59.0f, 225.0f },
{ 250.0f, 60.0f, 238.0f },
{ 243.0f, 60.0f, 242.0f },
{ 235.0f, 60.0f, 236.0f },
{ 226.0f, 60.0f, 228.0f },
{ 225.0f, 60.0f, 219.0f },
{ 228.0f, 58.0f, 208.0f },
{ 228.0f, 57.0f, 192.0f }
};
xyz_t unagi_reverse_to_normal_rail_pos[19] = {
{ 228.0f, 57.0f, 192.0f },
{ 218.0f, 56.0f, 178.0f },
{ 204.0f, 57.0f, 176.0f },
{ 191.0f, 58.0f, 186.0f },
{ 184.0f, 59.0f, 196.0f },
{ 189.0f, 60.0f, 208.0f },
{ 198.0f, 60.0f, 215.0f },
{ 205.0f, 60.0f, 224.0f },
{ 204.0f, 60.0f, 235.0f },
{ 196.0f, 60.0f, 242.0f },
{ 188.0f, 60.0f, 241.0f },
{ 183.0f, 60.0f, 233.0f },
{ 180.0f, 60.0f, 219.0f },
{ 181.0f, 60.0f, 207.0f },
{ 184.0f, 60.0f, 196.0f },
{ 191.0f, 59.0f, 186.0f },
{ 204.0f, 57.0f, 176.0f },
{ 218.0f, 56.0f, 178.0f },
{ 228.0f, 57.0f, 192.0f }
};
xyz_t *unagi_rail_tbl[3] = {
unagi_rail_pos,
unagi_rail_pos2,
unagi_rail_pos3
};
int unagi_rail_num_tbl[3] = {
ARRAY_LEN(unagi_rail_pos),
ARRAY_LEN(unagi_rail_pos2),
ARRAY_LEN(unagi_rail_pos3),
};
#include "../src/actor/ac_museum_fish_base.c_inc"
// clang-format on
@@ -695,10 +546,6 @@ void Museum_Fish_Actor_ct(ACTOR* actorx, GAME* gamex) {
mfish_point_light_ct(actorx, gamex);
for (i = 0; i < 14; i++) {
// 0x0060 : kusa_group_tbl
// 0x1300 : kusa_model
// 0x1338 : kusa_anime
// 0x1370 : kusa_start_frame
actor->prvKusa[i]._54C = kusa_model[i];
cKF_SkeletonInfo_R_ct(&actor->prvKusa[i]._00, kusa_model[i], kusa_anime[i], &actor->prvKusa[i]._4F0,
&actor->prvKusa[i]._514);
@@ -707,7 +554,6 @@ void Museum_Fish_Actor_ct(ACTOR* actorx, GAME* gamex) {
actor->prvKusa[i]._00.frame_control.current_frame = kusa_start_frame[i];
actor->prvKusa[i]._538.x = qrand();
actor->prvKusa[i]._538.z = qrand();
// actor->_101f0[i * 2 + 2] = qrand();
}
if (mMmd_FishInfo(aGYO_TYPE_FROG)) {
@@ -886,7 +732,7 @@ void Museum_Fish_Actor_move(ACTOR* actorx, GAME* game) {
f32 v;
GAME_PLAY* play = (GAME_PLAY*)game;
MUSEUM_FISH_ACTOR* actor = (MUSEUM_FISH_ACTOR*)actorx;
MUSEUM_FISH_PRIVATE_DATA* prv2;
mfish_point_light_mv(actor, &play->game);
old_14db4 = actor->_14db4;
mfish_get_player_area(actor, &play->game);
@@ -951,14 +797,10 @@ void Museum_Fish_Actor_move(ACTOR* actorx, GAME* game) {
}
Museum_Fish_Talk_process(actorx, game);
{
// needs a new variable
MUSEUM_FISH_PRIVATE_DATA* prv = actor->prvFish;
for (i = 0; i < aGYO_TYPE_NUM; i++, prv++) {
if (prv->_62E_flags & 1) {
mfish_mv[i](prv, game);
}
prv2 = actor->prvFish;
for (i = 0; i < aGYO_TYPE_NUM; i++, prv2++) {
if (prv2->_62E_flags & 1) {
mfish_mv[i](prv2, game);
}
}
@@ -1031,17 +873,17 @@ void Museum_Fish_Suisou_draw(ACTOR* actorx, GAME* game, int r5) {
}
}
BOOL kusa_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num, Gfx** mjoint_m, u8* joint_f, void* arg,
s_xyz* joint1, xyz_t* trans) {
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) {
MUSEUM_FISH_KUSA_DATA* actor = (MUSEUM_FISH_KUSA_DATA*)arg;
if (joint_num > 0) {
if (joint_idx > 0) {
f32 v = (actor->_54C == &cKF_bs_r_obj_museum5_kusa3) ? 35.0f : 20.f;
joint1->y += (s16)(sin_s(actor->_538.x + (joint_num * DEG2SHORT_ANGLE(90))) * 1274.0f);
joint1->x += (s16)(sin_s(actor->_538.z + (joint_num * DEG2SHORT_ANGLE(90))) * 4369.0f);
joint_rot->y += (s16)(sin_s(actor->_538.x + (joint_idx * DEG2SHORT_ANGLE(90))) * 1274.0f);
joint_rot->x += (s16)(sin_s(actor->_538.z + (joint_idx * DEG2SHORT_ANGLE(90))) * 4369.0f);
trans->y -= actor->_540.x * (v * joint_num);
trans->z += actor->_540.z * (v * joint_num);
joint_pos->y -= actor->_540.x * (v * joint_idx);
joint_pos->z += actor->_540.z * (v * joint_idx);
}
return TRUE;
}
+1
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_afish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_onefish_ct(actor, gamex);
+9 -12
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_aroana_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_onefish_ct(actor, gamex);
@@ -21,8 +22,6 @@ void mfish_aroana_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
add_calc0(&actor->_5F0, 0.01f, 0.001f);
}
// close copy of mfish_afish_normal_process_init
void mfish_aroana_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
f32 v = RANDOM_F(actor->init_data._14) + actor->init_data._10;
@@ -151,10 +150,8 @@ void mfish_aroana_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
if (ABS((s16)(actor->_60C.y - actor->_612.y)) < DEG2SHORT_ANGLE(2) && actor->_5E8 < 0.1f) {
if (actor->_63E > 0) {
if (mfish_WallCheck(actor)) {
// actor->_640 = 10;
mfish_aroana_turn_process_init(actor);
} else {
// actor->_640 = 10;
mfish_aroana_normal_process_init(actor);
}
actor->_63E--;
@@ -253,18 +250,18 @@ void mfish_aroana_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_38._00.frame_control.speed = (actor->_5E8 * 2.0f) / (actor->init_data._10 + actor->init_data._14) + 0.5f;
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
int v;
if (joint_num == 1) {
if (joint_idx == 1) {
Matrix_scale(1.0, sin_s(actor->_63A + actor->_63C) * 0.025f + 1.0f, sin_s(actor->_63A) * 0.025f + 1.0f, 1);
} else if (joint_num == 2) {
v = joint1->y - (actor->_618.z << 1);
joint1->y = MIN(MAX(v, DEG2SHORT_ANGLE(-40)), DEG2SHORT_ANGLE(40));
} else if (joint_idx == 2) {
v = joint_rot->y - (actor->_618.z << 1);
joint_rot->y = MIN(MAX(v, DEG2SHORT_ANGLE(-40)), DEG2SHORT_ANGLE(40));
v = joint1->x - (actor->_618.z >> 2);
joint1->x = MIN(MAX(v, DEG2SHORT_ANGLE(-20)), DEG2SHORT_ANGLE(20));
v = joint_rot->x - (actor->_618.z >> 2);
joint_rot->x = MIN(MAX(v, DEG2SHORT_ANGLE(-20)), DEG2SHORT_ANGLE(20));
Matrix_scale(1.0f, sin_s(actor->_63A + DEG2SHORT_ANGLE(270)) * 0.05f + 1.0f,
sin_s(actor->_63A + DEG2SHORT_ANGLE(90)) * 0.05f + 1.0f, 1);
+18 -33
View File
@@ -1,3 +1,5 @@
#include "ac_museum_fish_priv.h"
f32 Rnd_EX_f(f32 v) {
f32 rand1 = RANDOM2_F(2);
f32 rand2 = RANDOM_F(1);
@@ -121,7 +123,6 @@ void mfish_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* prv) {
}
void mfish_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
// no clue what's going on here
add_calc_short_angle2(&actor->_612.y, actor->_634, CALC_EASE2(0.2f), DEG2SHORT_ANGLE(3.75f),
DEG2SHORT_ANGLE(0.25f));
actor->_622 = add_calc_short_angle2(&actor->_60C.y, actor->_612.y, CALC_EASE2(0.5f), DEG2SHORT_ANGLE(5.0f),
@@ -526,10 +527,10 @@ void mfish_onefish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
cKF_SkeletonInfo_R_play(&actor->_38._00);
}
int mfish_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) {
int 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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 2) {
if (joint_idx == 2) {
int v, t;
if (actor->group != 4) {
@@ -542,10 +543,10 @@ int mfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joint_num,
v = 3;
}
t = joint1->y - (actor->_618.z * v);
joint1->y = MY_CLAMP(t, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
t = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(t, DEG2SHORT_ANGLE(-25), DEG2SHORT_ANGLE(25));
t = joint_rot->y - (actor->_618.z * v);
joint_rot->y = MY_CLAMP(t, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
t = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(t, DEG2SHORT_ANGLE(-25), DEG2SHORT_ANGLE(25));
}
return 1;
}
@@ -643,6 +644,7 @@ void mfish_ani_base_dw(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
#include "../src/actor/ac_museum_fish_zarigani.c_inc"
#include "../src/actor/ac_museum_fish_kurage.c_inc"
#include "../src/actor/ac_museum_fish_hasu.c_inc"
void Museum_Fish_BigFishObjCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
int i;
MUSEUM_FISH_PRIVATE_DATA* fish[2];
@@ -802,7 +804,7 @@ void Museum_Fish_DonkoBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_62E_flags &= ~0x1e;
actor->_62C = 0;
Museum_Fish_objchk_pos_set(actor, gamex);
// asm 17C
a = (+00.0f + p.x);
b = (+45.0f + p.x);
d = (-17.5f + p.z);
@@ -816,19 +818,11 @@ void Museum_Fish_DonkoBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
c -= (actor->position.z + actor->init_data._28 * v2);
d -= (actor->position.z - actor->init_data._28 * v2);
/*
f31 = a
f30 = b
f28 = c
f29 = d
*/
actor->_5FC = -a;
actor->_600 = b;
actor->_604 = -c;
actor->_608 = d;
// asm 2E8
f27 -= actor->position.y;
f26 -= actor->position.y;
if (a > 0.0f) {
@@ -878,7 +872,6 @@ void Museum_Fish_DonkoBGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
f25 = MIN(MIN(actor->_608 - cos_s(actor->_60C.y), actor->_604 + cos_s(actor->_60C.y)),
MIN(actor->_600 - sin_s(actor->_60C.y), actor->_5FC + sin_s(actor->_60C.y)));
// asm 5D8
if (f25 < 5.0f) {
f26 -= 0.5f * (5.0f - f25);
}
@@ -896,7 +889,7 @@ void Museum_Fish_objchk_pos_set(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
actor->_5B8.z += (actor->init_data._24 * cos_s(actor->_60C.y));
}
void Museum_Fish_old_chk_pos_set() {
void Museum_Fish_old_chk_pos_set(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
// UNUSED/STRIPPED
}
@@ -961,7 +954,6 @@ void Museum_Fish_BGCheck(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
actor->_62E_flags |= 0x8;
}
// asm 468
Museum_Fish_objchk_pos_set(actor, game);
actor->_5FC = actor->_5B8.x - (p.x - f29);
actor->_600 = (p.x + f30) - actor->_5B8.x;
@@ -1068,9 +1060,7 @@ void Museum_Fish_Kusa_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
actor->prvKusa[j]._538.y = DEG2SHORT_ANGLE(3.5f);
}
}
// asm 3fc-410
}
// asm 414
if (f28 > 0.0f) {
f->_62E_flags |= 0x100;
f->position.x += (f30 / f28);
@@ -1079,15 +1069,14 @@ void Museum_Fish_Kusa_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
f28 = 0.0f;
f29 = 0.0f;
f30 = 0.0f;
// asm 460
}
}
}
void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
int i;
MUSEUM_FISH_PRIVATE_DATA* fj; // r31
MUSEUM_FISH_PRIVATE_DATA* f; // r29
MUSEUM_FISH_PRIVATE_DATA* fj;
MUSEUM_FISH_PRIVATE_DATA* f;
int j;
f32 f31;
f32 f30;
@@ -1111,15 +1100,14 @@ void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
f = actor->prvFish;
for (i = 0; i < aGYO_TYPE_NUM; i++, f++) {
// asm b8
if (i != 0x21 && i != 0x20 && i != 0x1a && i != 0x27 && i != 0xa && f->_62E_flags & 1) {
for (j = 0; j < aGYO_TYPE_NUM; j++, fj++) {
if (f->group == fj->group && i != j && j != 0x21 && j != 0x1a && j != 0x27 && j != 10 &&
fj->_62E_flags & 1 != 0) {
test.x = f->_5B8.x - fj->_5B8.x; // f31
test.y = f->_5B8.y - fj->_5B8.y; // f29
test.z = f->_5B8.z - fj->_5B8.z; // f30
test.x = f->_5B8.x - fj->_5B8.x;
test.y = f->_5B8.y - fj->_5B8.y;
test.z = f->_5B8.z - fj->_5B8.z;
sq_xz = SQ(test.x) + SQ(test.z);
sq_xzy = sq_xz + SQ(test.y);
if (sqrtf(sq_xzy) < f23) {
@@ -1133,7 +1121,7 @@ void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
if (sq_xz < SQ(additive)) {
f22 = additive - sqrtf(SQ(test.x) + SQ(test.z));
// bug?
//! BUG: multiplying by zero?
if (test.y > atans_table(sqrtf(SQ(test.x) + SQ(test.z)), test.y) * 0.0f) {
test.y = -test.y + (f->init_data._04 + fj->init_data._04);
} else {
@@ -1174,8 +1162,6 @@ void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
}
}
}
// asm 5ec - 5f8
}
if (f25 > 0.0f) {
@@ -1208,7 +1194,6 @@ void Museum_Fish_Object_Check(MUSEUM_FISH_ACTOR* actor, GAME* game) {
if (f->group == 3 && f->_624 != 7) {
Museum_Fish_BigFishObjCheck(f, game);
}
// asm 728
}
}
+1 -4
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_bass_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4) {
if (r4 == 0) {
@@ -53,7 +54,6 @@ void mfish_bass_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
}
void mfish_bass_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
// no clue what's going on here
add_calc_short_angle2(&actor->_612.y, actor->_634, CALC_EASE2(0.1f), DEG2SHORT_ANGLE(2.5f), DEG2SHORT_ANGLE(0.25f));
actor->_622 = add_calc_short_angle2(&actor->_60C.y, actor->_612.y, CALC_EASE2(0.25f), DEG2SHORT_ANGLE(1.25f),
DEG2SHORT_ANGLE(0.25f));
@@ -62,7 +62,6 @@ void mfish_bass_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
}
void mfish_bass_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* fishActor) {
//! NOTE: wrong floats in this file, based on objdiff
f32 ra;
f32 t;
f32 temp;
@@ -133,7 +132,6 @@ void mfish_bass_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* fishActor) {
}
void mfish_bass_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
//! NOTE: wrong floats in this file, based on objdiff
if (((actor->_62E_flags & 0x200) != 0 && actor->_632 > DEG2SHORT_ANGLE(20)) || actor->_640 > 0) {
f32 v = (actor->_5AC.y * 0.03f + 0.02f);
add_calc2(&actor->_5EC,
@@ -283,7 +281,6 @@ void mfish_bass_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
void mfish_bass_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this file, based on objdiff
mfish_onefish_mv(actor, gamex);
if (actor->_5F8 > actor->init_data._08 * 20.0f) {
+17 -18
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_big_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
qrand();
@@ -35,7 +36,6 @@ void mfish_big_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
void mfish_big_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this function, based on objdiff
xyz_t p;
mfish_onefish_mv(actor, gamex);
mfish_body_wind_anime_play(actor, gamex);
@@ -146,12 +146,11 @@ void mfish_big_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
Museum_Fish_BGCheck(actor, gamex);
}
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) {
//! NOTE: wrong floats in this function, based on objdiff
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
if (joint_idx == 1) {
f32 v;
int i;
if (actor->fishIDEnum == aGYO_TYPE_ARAPAIMA) {
@@ -159,13 +158,13 @@ BOOL mfish_bfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joi
} else {
v = 0.02f;
}
i = joint1->x + (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
i = joint1->y + (int)(actor->_644 * (GETREG(TAKREG, 0x14) * 0.01f + 0.5f) * sin_s(actor->_646));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
trans->z += actor->_5AC.x * 0.06f * actor->_644 * sin_s(actor->_646 - DEG2SHORT_ANGLE(90));
i = joint_rot->x + (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
i = joint_rot->y + (int)(actor->_644 * (GETREG(TAKREG, 0x14) * 0.01f + 0.5f) * sin_s(actor->_646));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
joint_pos->z += actor->_5AC.x * 0.06f * actor->_644 * sin_s(actor->_646 - DEG2SHORT_ANGLE(90));
Matrix_scale(1.0f, 1.0f + v * sin_s(actor->_63A + actor->_63C), 1.0f + v * sin_s(actor->_63A), 1);
} else if (joint_num == 2) {
} else if (joint_idx == 2) {
f32 v;
int i;
if (actor->fishIDEnum == aGYO_TYPE_ARAPAIMA) {
@@ -173,19 +172,19 @@ BOOL mfish_bfish_before_disp(GAME* game, cKF_SkeletonInfo_R_c* keyframe, int joi
} else {
v = 0.035f;
}
i = joint1->y - (actor->_618.z * 2) +
i = joint_rot->y - (actor->_618.z * 2) +
(int)(actor->_644 * (GETREG(TAKREG, 0x15) * 0.01f + 0.75f) *
sin_s(actor->_646 + DEG2SHORT_ANGLE(-90.f + GETREG(TAKREG, 0x17))));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
i = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
i = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
Matrix_scale(1.0f, 1.0f + v * sin_s(actor->_63A + DEG2SHORT_ANGLE(270)),
1.0f + v * sin_s(actor->_63A + DEG2SHORT_ANGLE(90)), 1);
} else if (joint_num == 3 && actor->fishIDEnum == aGYO_TYPE_ARAPAIMA) {
int i = joint1->y - actor->_618.z +
} else if (joint_idx == 3 && actor->fishIDEnum == aGYO_TYPE_ARAPAIMA) {
int i = joint_rot->y - actor->_618.z +
(int)(actor->_644 * (1.0f + 0.01f * GETREG(TAKREG, 0x16)) *
sin_s(actor->_646 + DEG2SHORT_ANGLE(-180.f + GETREG(TAKREG, 0x18))));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
}
return TRUE;
+13 -12
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_dojou_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -165,24 +166,24 @@ void mfish_dojou_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_612.x = MAX((s16)-actor->init_data._30, MIN(actor->init_data._30, actor->_612.x));
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int i = joint1->x + actor->_618.z;
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-45), DEG2SHORT_ANGLE(40));
i = joint1->y + actor->_618.z;
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
} else if (joint_num == 2) {
int i = (s16)(joint1->z - actor->_618.x);
if (joint_idx == 1) {
int i = joint_rot->x + actor->_618.z;
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-45), DEG2SHORT_ANGLE(40));
i = joint_rot->y + actor->_618.z;
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
} else if (joint_idx == 2) {
int i = (s16)(joint_rot->z - actor->_618.x);
f32 z;
f32 t;
joint1->z = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
joint_rot->z = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
z = actor->_618.z;
t = joint1->y * ((GETREG(TAKREG, 0x19) * 0.1f + 0.8f) * actor->_5AC.x + 1.0f);
t = joint_rot->y * ((GETREG(TAKREG, 0x19) * 0.1f + 0.8f) * actor->_5AC.x + 1.0f);
i = (int)t - (int)z;
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
}
return TRUE;
}
+11 -10
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_donko_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! BUG: ?
@@ -94,17 +95,17 @@ void mfish_donko_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
Museum_Fish_DonkoBGCheck(actor, gamex);
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int i = joint1->x + (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
} else if (joint_num == 2) {
int i = joint1->y - (actor->_618.z << 1);
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
i = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
if (joint_idx == 1) {
int i = joint_rot->x + (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
} else if (joint_idx == 2) {
int i = joint_rot->y - (actor->_618.z << 1);
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
i = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
}
return TRUE;
+15 -14
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_gupi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -167,24 +168,24 @@ void mfish_gupi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_612.x = MAX((s16)-actor->init_data._30, MIN(actor->init_data._30, actor->_612.x));
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int s = joint1->x + actor->_618.z;
joint1->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
s = joint1->y + actor->_618.z;
joint1->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
} else if (joint_num == 2) {
if (joint_idx == 1) {
int s = joint_rot->x + actor->_618.z;
joint_rot->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
s = joint_rot->y + actor->_618.z;
joint_rot->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
} else if (joint_idx == 2) {
int s;
if (actor->_5F0 - 0.001f > actor->_5E8) {
joint1->y += (int)(2.0f * (actor->_5F0 - actor->_5E8) * joint1->y);
joint_rot->y += (int)(joint_rot->y * (2.0f * (actor->_5F0 - actor->_5E8)));
}
s = joint1->y - actor->_618.z * 3;
joint1->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(60), DEG2SHORT_ANGLE(60));
s = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
joint1->z += (s16)(actor->_618.x * (-1.3f + GETREG(TAKREG, 0x4e) * 0.1f));
s = joint_rot->y - actor->_618.z * 3;
joint_rot->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(60), DEG2SHORT_ANGLE(60));
s = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
joint_rot->z += (s16)(actor->_618.x * (-1.3f + GETREG(TAKREG, 0x4e) * 0.1f));
Matrix_scale((GETREG(TAKREG, 0x4b) * 0.01f) * cos_s(actor->_63A) + 0.05f + 1.0f,
(GETREG(TAKREG, 0x4c) * 0.01f) * sin_s(actor->_63A) + 0.1f + 1.0f, 1.0f, 1);
}
+12 -12
View File
@@ -1,4 +1,4 @@
// Pretty sure all the floats in this file are correct
#include "ac_museum_fish_priv.h"
extern cKF_Skeleton_R_c cKF_bs_r_obj_museum5_hasu;
extern cKF_Animation_R_c cKF_ba_r_obj_museum5_hasu;
@@ -159,25 +159,25 @@ 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_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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
YET_SKELETON_2* v2 = actor->_590;
if (joint_num == 7) {
trans->z += v2->_55C * sin_s(v2->_568);
} else if (joint_num == 4) {
trans->z += v2->_560 * sin_s(v2->_56A);
} else if (joint_num == 9) {
trans->z += v2->_564 * sin_s(v2->_56C);
if (joint_idx == 7) {
joint_pos->z += v2->_55C * sin_s(v2->_568);
} else if (joint_idx == 4) {
joint_pos->z += v2->_560 * sin_s(v2->_56A);
} else if (joint_idx == 9) {
joint_pos->z += v2->_564 * sin_s(v2->_56C);
}
return TRUE;
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
YET_SKELETON_2* skele = actor->_590;
if (joint_num == 9) {
if (joint_idx == 9) {
Matrix_Position_Zero(&actor->position);
actor->position.y = skele->_564 * actor->init_data.renderScale * sin_s(skele->_56C) + 116.0f;
}
+14 -13
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_ito_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! BUG: unused
@@ -81,26 +82,26 @@ void mfish_ito_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
Museum_Fish_BGCheck(actor, gamex);
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
if (joint_idx == 1) {
f32 v;
int i = joint1->x + (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
i = joint1->y + (int)(actor->_644 * (GETREG(TAKREG, 0x14) * 0.01f + 0.5f) * sin_s(actor->_646));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
int i = joint_rot->x + (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
i = joint_rot->y + (int)(actor->_644 * (GETREG(TAKREG, 0x14) * 0.01f + 0.5f) * sin_s(actor->_646));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
v = actor->_5AC.x * actor->_644 * sin_s(actor->_646 - DEG2SHORT_ANGLE(90));
trans->z += v;
joint_pos->z += v;
Matrix_scale(1.0f, sin_s(actor->_63A + actor->_63C) * 0.025f + 1.0f, sin_s(actor->_63A) * 0.025f + 1.0f, 1);
} else if (joint_num == 2) {
} else if (joint_idx == 2) {
int i;
i = joint1->y - 2 * actor->_618.z +
i = joint_rot->y - 2 * actor->_618.z +
(int)(actor->_644 * (GETREG(TAKREG, 0x15) * 0.01f + 0.75f) *
sin_s(actor->_646 + DEG2SHORT_ANGLE(-90.f + GETREG(TAKREG, 0x17))));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
i = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-40), DEG2SHORT_ANGLE(40));
i = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
Matrix_scale(1.0f, sin_s(actor->_63A + DEG2SHORT_ANGLE(270)) * 0.05f + 1.0f,
sin_s(actor->_63A + DEG2SHORT_ANGLE(90)) * 0.05f + 1.0f, 1);
}
+16 -15
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_kaseki_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_onefish_ct(actor, gamex);
@@ -147,27 +148,27 @@ void mfish_kaseki_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
actor->activityFrameCount--;
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
int i;
if (joint_num == 1) {
i = joint1->x + (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.01f + 0.5f));
joint1->x = MIN(MAX(i, DEG2SHORT_ANGLE(-10)), DEG2SHORT_ANGLE(10));
if (joint_idx == 1) {
i = joint_rot->x + (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.01f + 0.5f));
joint_rot->x = MIN(MAX(i, DEG2SHORT_ANGLE(-10)), DEG2SHORT_ANGLE(10));
Matrix_scale(1.0f, (GETREG(TAKREG, 0x36) * 0.001f + 0.02f) * sin_s(actor->_63A + actor->_63C) + 1.0f,
(GETREG(TAKREG, 0x36) * 0.001f + 0.02f) * sin_s(actor->_63A) + 1.0f, 1);
} else if (joint_num == 2) {
i = joint1->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x46) * 0.01f + 1.25f));
joint1->y = MIN(MAX(i, DEG2SHORT_ANGLE(-50)), DEG2SHORT_ANGLE(50));
i = joint1->x - (int)(actor->_618.z * (GETREG(TAKREG, 0x48) * 0.01f + 0.25f));
joint1->x = MIN(MAX(i, DEG2SHORT_ANGLE(-10)), DEG2SHORT_ANGLE(10));
} else if (joint_idx == 2) {
i = joint_rot->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x46) * 0.01f + 1.25f));
joint_rot->y = MIN(MAX(i, DEG2SHORT_ANGLE(-50)), DEG2SHORT_ANGLE(50));
i = joint_rot->x - (int)(actor->_618.z * (GETREG(TAKREG, 0x48) * 0.01f + 0.25f));
joint_rot->x = MIN(MAX(i, DEG2SHORT_ANGLE(-10)), DEG2SHORT_ANGLE(10));
Matrix_scale(1.0f, (GETREG(TAKREG, 0x37) * 0.001f + 0.045f) * sin_s(actor->_63A + DEG2SHORT_ANGLE(270)) + 1.0f,
(GETREG(TAKREG, 0x37) * 0.001f + 0.045f) * sin_s(actor->_63A + DEG2SHORT_ANGLE(90)) + 1.0f, 1);
} else if (joint_num == 3) {
i = joint1->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.01f + 1.25f));
joint1->y = MIN(MAX(i, DEG2SHORT_ANGLE(-50)), DEG2SHORT_ANGLE(50));
i = joint1->x + DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x2d) * sin_s(actor->_63A));
joint1->x = MIN(MAX(i, DEG2SHORT_ANGLE(-40)), DEG2SHORT_ANGLE(40));
} else if (joint_idx == 3) {
i = joint_rot->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.01f + 1.25f));
joint_rot->y = MIN(MAX(i, DEG2SHORT_ANGLE(-50)), DEG2SHORT_ANGLE(50));
i = joint_rot->x + DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x2d) * sin_s(actor->_63A));
joint_rot->x = MIN(MAX(i, DEG2SHORT_ANGLE(-40)), DEG2SHORT_ANGLE(40));
}
return TRUE;
}
+15 -14
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_kingyo_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -215,24 +216,24 @@ void mfish_kingyo_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_612.x = MAX((s16)-actor->init_data._30, MIN(actor->init_data._30, actor->_612.x));
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int i = joint1->x + actor->_618.z;
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
i = joint1->y + actor->_618.z;
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
} else if (joint_num == 2) {
if (joint_idx == 1) {
int i = joint_rot->x + actor->_618.z;
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
i = joint_rot->y + actor->_618.z;
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
} else if (joint_idx == 2) {
int i;
if (actor->_5F0 - 0.001f > actor->_5E8) {
joint1->y += (int)((actor->_5F0 - actor->_5E8) * 2.0f * joint1->y);
joint_rot->y += (int)((actor->_5F0 - actor->_5E8) * 2.0f * joint_rot->y);
}
i = joint1->y - actor->_618.z * 3;
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
i = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
joint1->z += (int)(actor->_618.x * (-1.3f + 0.1f * GETREG(TAKREG, 0x4e)));
i = joint_rot->y - actor->_618.z * 3;
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
i = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
joint_rot->z += (int)(actor->_618.x * (-1.3f + 0.1f * GETREG(TAKREG, 0x4e)));
Matrix_scale(GETREG(TAKREG, 0x4b) * 0.01f * cos_s(actor->_63A) + 0.05f + 1.0f,
GETREG(TAKREG, 0x4c) * 0.01f * sin_s(actor->_63A) + 0.1f + 1.0f,
GETREG(TAKREG, 0x4d) * 0.01f * cos_s(actor->_63A) + 0.1f + 1.0f, 1);
+15 -20
View File
@@ -1,3 +1,5 @@
#include "ac_museum_fish_priv.h"
void mfish_koi_tail_anim_set(MUSEUM_FISH_PRIVATE_DATA* actor, s32 r4) {
f32 temp;
f32 temp2;
@@ -162,7 +164,6 @@ void mfish_koi_normal_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
void mfish_koi_normal_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
s16 temp;
//! NOTE: wrong float somewhere in this file, just based on objdiffs colors changing
if (ABS(actor->_632) > DEG2SHORT_ANGLE(20) || actor->_640 > 0) {
add_calc2(&actor->_5EC, ((actor->_632 - DEG2SHORT_ANGLE(20)) / DEG2SHORT_ANGLE(2)) * 0.0035f + 0.03f, 0.35f,
0.05f);
@@ -319,8 +320,6 @@ void mfish_koi_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 atany;
f32 dist;
// mfish_get_player_angle(actor, gamex, &atanx, &atany, &dist);
if (ABS(actor->_632) > DEG2SHORT_ANGLE(20) || actor->_640 > 0) {
add_calc2(&actor->_5EC, ((actor->_632 - DEG2SHORT_ANGLE(20)) / DEG2SHORT_ANGLE(2)) * 0.0035f + 0.04f, 0.4f,
0.1f);
@@ -343,10 +342,8 @@ void mfish_koi_peck_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_5F0 = 0.05f;
actor->activityFrameCount =
actor->init_data.activeFramesMin + (s16)RANDOM_F(actor->init_data.activeFramesRange);
// actor->_626 >>= 3;
}
actor->savedActivityFrameCount = actor->activityFrameCount;
// actor->_5F0 = 0.0f;
}
}
@@ -389,7 +386,6 @@ void mfish_koi_base_FishMove(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
}
void mfish_koi_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this file, based on objdiff
if (actor->_5F8 > actor->init_data._08 * 20.f) {
actor->_5F8 = 0.0f;
actor->activityFrameCount = 0;
@@ -423,7 +419,6 @@ void mfish_koi_base_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
}
// actor->_5AC.y = 0.0f;
actor->_638 += DEG2SHORT_ANGLE(10);
actor->currentProcess(actor, gamex);
if (ABS(actor->_618.z) < ABS(actor->_622) && ABS(actor->_622) > DEG2SHORT_ANGLE(2)) {
@@ -472,23 +467,23 @@ 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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 0) {
trans->x *= actor->_5AC.z;
trans->y *= actor->_5AC.z;
trans->z = (trans->z - 1400.0f) * actor->_5AC.z + 1400.0f;
} else if (joint_num == 1) {
joint1->y = joint1->y * actor->_5AC.z;
} else if (joint_num == 2) {
if (joint_idx == 0) {
joint_pos->x *= actor->_5AC.z;
joint_pos->y *= actor->_5AC.z;
joint_pos->z = (joint_pos->z - 1400.0f) * actor->_5AC.z + 1400.0f;
} else if (joint_idx == 1) {
joint_rot->y *= actor->_5AC.z;
} else if (joint_idx == 2) {
int i;
i = joint1->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.1f + 2.0f));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
i = joint_rot->y - (int)(actor->_618.z * (GETREG(TAKREG, 0x47) * 0.1f + 2.0f));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-80), DEG2SHORT_ANGLE(80));
i = joint1->x - (actor->_618.z >> 3);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-25), DEG2SHORT_ANGLE(25));
i = joint_rot->x - (actor->_618.z >> 3);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-25), DEG2SHORT_ANGLE(25));
}
return TRUE;
+1 -1
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_kurage_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -102,7 +103,6 @@ void mfish_kurage_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
void mfish_kurage_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this file, based on objdiff
f32 v;
xyz_t p;
f32 t;
+13 -12
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_medaka_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -137,19 +138,19 @@ void mfish_medaka_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_612.x = MAX((s16)-actor->init_data._30, MIN(actor->init_data._30, actor->_612.x));
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int i = joint1->x + actor->_618.z;
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
i = joint1->y + actor->_618.z;
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
} else if (joint_num == 2) {
int i = joint1->y - (actor->_618.z * 3);
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
i = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
if (joint_idx == 1) {
int i = joint_rot->x + actor->_618.z;
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
i = joint_rot->y + actor->_618.z;
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
} else if (joint_idx == 2) {
int i = joint_rot->y - (actor->_618.z * 3);
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
i = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(i, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
}
return TRUE;
}
+20 -20
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_namazu_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_onefish_ct(actor, gamex);
@@ -16,7 +17,6 @@ void mfish_namazu_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_622 = actor->_60C.y;
actor->position.z += 40.0f;
actor->_624 = 10;
// maybe s_xyz? but because we're not assigning a ZeroSVec, i'm thinking not?
actor->_640 = 0;
actor->_642 = 0;
actor->_644 = 0;
@@ -101,7 +101,7 @@ void mfish_namazu_dummy_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
actor->currentProcess = mfish_namazu_dummy_process;
}
void mfish_namazu_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor) {
void mfish_namazu_dummy_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
if (actor->_5E8 < 0.5f) {
add_calc_short_angle2(&actor->_612.y, actor->_634, CALC_EASE2(0.1f), DEG2SHORT_ANGLE(1.25f),
DEG2SHORT_ANGLE(0.125f));
@@ -143,7 +143,7 @@ void mfish_namazu_turn_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
actor->currentProcess = mfish_namazu_turn_process;
}
void mfish_namazu_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor) {
void mfish_namazu_turn_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
add_calc2(&actor->_5E8, actor->_5F0, CALC_EASE(0.05f), 0.0625f);
add_calc2(&actor->_5F0, 0.05f, CALC_EASE(0.1f), 0.0025f);
add_calc_short_angle2(&actor->_632, 0, CALC_EASE2(0.29f), DEG2SHORT_ANGLE(1.25f), DEG2SHORT_ANGLE(0.125f));
@@ -184,7 +184,7 @@ void mfish_namazu_ground_sweep_process_init(MUSEUM_FISH_PRIVATE_DATA* actor) {
actor->currentProcess = mfish_namazu_ground_sweep_process;
}
void mfish_namazu_ground_sweep_process(MUSEUM_FISH_PRIVATE_DATA* actor) {
void mfish_namazu_ground_sweep_process(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
if (actor->_632 > DEG2SHORT_ANGLE(20)) {
add_calc2(&actor->_5E8, actor->_5F0, CALC_EASE(0.075f),
(0.4f + 0.02f * ((actor->_632 - DEG2SHORT_ANGLE(20)) / DEG2SHORT_ANGLE(2))) * 0.5f);
@@ -282,25 +282,25 @@ void mfish_namazu_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_namazu_body_wind_anime_play(actor, gamex);
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
int s;
if (joint_num == 0) {
trans->y = -(actor->_5AC.y * MIN(sin_s(actor->_640), 0.5f));
} else if (joint_num == 1) {
s = joint1->z + actor->_640;
joint1->z = MY_CLAMP(s, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
s = joint1->x + (actor->_618.z >> 2);
joint1->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
if (joint_idx == 0) {
joint_pos->y = -(actor->_5AC.y * MIN(sin_s(actor->_640), 0.5f));
} else if (joint_idx == 1) {
s = joint_rot->z + actor->_640;
joint_rot->z = MY_CLAMP(s, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
s = joint_rot->x + (actor->_618.z >> 2);
joint_rot->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
Matrix_scale(1.0f, 1.0f + 0.01f * sin_s(actor->_63A + actor->_63C), 1.0f + 0.01f * sin_s(actor->_63A), 1);
} else if (joint_num == 2) {
s = joint1->y - (actor->_618.z << 1);
joint1->y = MY_CLAMP(s, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
s = joint1->x - (actor->_618.z >> 2);
joint1->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
s = joint1->z - (s16)(actor->_640 * (0.6f + GETREG(TAKREG, 0x4E) * 0.01f));
joint1->z = MY_CLAMP(s, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
} else if (joint_idx == 2) {
s = joint_rot->y - (actor->_618.z << 1);
joint_rot->y = MY_CLAMP(s, DEG2SHORT_ANGLE(-60), DEG2SHORT_ANGLE(60));
s = joint_rot->x - (actor->_618.z >> 2);
joint_rot->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-20), DEG2SHORT_ANGLE(20));
s = joint_rot->z - (s16)(actor->_640 * (0.6f + GETREG(TAKREG, 0x4E) * 0.01f));
joint_rot->z = MY_CLAMP(s, DEG2SHORT_ANGLE(-30), DEG2SHORT_ANGLE(30));
Matrix_scale(1.0f, 1.0f + 0.005f * sin_s(actor->_63A + DEG2SHORT_ANGLE(270)),
1.0f + 0.005f * sin_s(actor->_63A + DEG2SHORT_ANGLE(90)), 1);
}
+9 -12
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_seafish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
s16 s = qrand();
@@ -67,11 +68,9 @@ void mfish_seafish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
if (actor->_598->position.z < actor->position.z) {
// swap here
o_5a0_z += sum_i_8;
add_calc2(&actor->position.z, o_5a0_z, 0.1f, abs_diff_sum * 0.1f);
} else {
// swap here
o_5a0_z -= sum_i_8;
add_calc2(&actor->position.z, o_5a0_z, 0.1f, abs_diff_sum * 0.1f);
}
@@ -123,7 +122,6 @@ void mfish_seafish_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
DEG2SHORT_ANGLE(0));
}
} else if (actor->activityFrameCount < 0) {
// r in wrong register here
r = RANDOM_F(1.0f);
actor->_612.y = actor->_60C.y;
if ((actor->_608 - actor->_604) * cos_s(actor->_60C.y) < 0.0f) {
@@ -179,7 +177,6 @@ void mfish_seafish_turn(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* game) {
}
void mfish_seafish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this file, based on objdiff
xyz_t p;
actor->currentProcess(actor, gamex);
actor->_618.x += DEG2SHORT_ANGLE(actor->_5E8 * RANDOM_F(3.0f));
@@ -216,17 +213,17 @@ void mfish_seafish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->activityFrameCount--;
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int s = joint1->x + (int)(actor->_618.z * (GETREG(TAKREG, 0x37) * 0.01f + 0.5f));
joint1->x = MIN(MAX(s, DEG2SHORT_ANGLE(-15)), DEG2SHORT_ANGLE(15));
if (joint_idx == 1) {
int s = joint_rot->x + (int)(actor->_618.z * (GETREG(TAKREG, 0x37) * 0.01f + 0.5f));
joint_rot->x = MIN(MAX(s, DEG2SHORT_ANGLE(-15)), DEG2SHORT_ANGLE(15));
Matrix_scale(1.0f, (GETREG(TAKREG, 0x36) * 0.001f + 0.035f) * sin_s(actor->_63A + actor->_63C) + 1.0f,
(GETREG(TAKREG, 0x36) * 0.001f + 0.035f) * sin_s(actor->_63A) + 1.0f, 1);
} else if (joint_num == 2) {
int v = joint1->y - (actor->_618.z << 1);
joint1->y = MIN(MAX(v, DEG2SHORT_ANGLE(-80)), DEG2SHORT_ANGLE(80));
} else if (joint_idx == 2) {
int v = joint_rot->y - (actor->_618.z << 1);
joint_rot->y = MIN(MAX(v, DEG2SHORT_ANGLE(-80)), DEG2SHORT_ANGLE(80));
Matrix_scale(1.0f, sin_s(actor->_63A + DEG2SHORT_ANGLE(270)) * 0.07f + 1.0f,
sin_s(actor->_63A + DEG2SHORT_ANGLE(90)) * 0.07f + 1.0f, 1);
}
+13 -12
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_small_fish_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -162,19 +163,19 @@ void mfish_small_fish_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->_612.x = MAX((s16)-actor->init_data._30, MIN(actor->init_data._30, actor->_612.x));
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int s = joint1->x + actor->_618.z;
joint1->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
s = joint1->y + actor->_618.z;
joint1->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
} else if (joint_num == 2) {
int s = joint1->y - actor->_618.z * 3;
joint1->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(60), DEG2SHORT_ANGLE(60));
s = joint1->x - (actor->_618.z >> 1);
joint1->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
if (joint_idx == 1) {
int s = joint_rot->x + actor->_618.z;
joint_rot->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
s = joint_rot->y + actor->_618.z;
joint_rot->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
} else if (joint_idx == 2) {
int s = joint_rot->y - actor->_618.z * 3;
joint_rot->y = MY_CLAMP(s, -DEG2SHORT_ANGLE(60), DEG2SHORT_ANGLE(60));
s = joint_rot->x - (actor->_618.z >> 1);
joint_rot->x = MY_CLAMP(s, -DEG2SHORT_ANGLE(30), DEG2SHORT_ANGLE(30));
}
return TRUE;
}
+9 -8
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_tai_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
s16 s = qrand();
@@ -245,15 +246,15 @@ void mfish_tai_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
actor->activityFrameCount--;
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
int s = (joint1->x + actor->_618.z) >> 3;
joint1->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-15), DEG2SHORT_ANGLE(15));
} else if (joint_num == 2) {
int s = joint1->y - (int)(actor->_618.z * (0.01f * GETREG(TAKREG, 0x4b) + 1.5f));
joint1->y = MY_CLAMP(s, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
if (joint_idx == 1) {
int s = (joint_rot->x + actor->_618.z) >> 3;
joint_rot->x = MY_CLAMP(s, DEG2SHORT_ANGLE(-15), DEG2SHORT_ANGLE(15));
} else if (joint_idx == 2) {
int s = joint_rot->y - (int)(actor->_618.z * (0.01f * GETREG(TAKREG, 0x4b) + 1.5f));
joint_rot->y = MY_CLAMP(s, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
}
return TRUE;
}
+64 -14
View File
@@ -1,3 +1,54 @@
#include "ac_museum_fish_priv.h"
xyz_t unagi_rail_pos[25] = { { 228.0f, 57.0f, 192.0f }, { 231.0f, 57.0f, 203.0f }, { 237.0f, 57.0f, 215.0f },
{ 245.0f, 58.0f, 225.0f }, { 252.0f, 59.0f, 233.0f }, { 254.0f, 60.0f, 245.0f },
{ 248.0f, 60.0f, 255.0f }, { 238.0f, 60.0f, 256.0f }, { 231.0f, 60.0f, 247.0f },
{ 222.0f, 60.0f, 240.0f }, { 212.0f, 60.0f, 243.0f }, { 203.0f, 60.0f, 249.0f },
{ 196.0f, 60.0f, 248.0f }, { 191.0f, 60.0f, 241.0f }, { 191.0f, 60.0f, 234.0f },
{ 187.0f, 60.0f, 223.0f }, { 183.0f, 60.0f, 212.0f }, { 181.0f, 60.0f, 203.0f },
{ 182.0f, 57.0f, 191.0f }, { 187.0f, 56.0f, 183.0f }, { 193.0f, 56.0f, 176.0f },
{ 201.0f, 56.0f, 172.0f }, { 209.0f, 56.0f, 173.0f }, { 216.0f, 56.0f, 176.0f },
{ 221.0f, 56.0f, 182.0f } };
xyz_t unagi_rail_pos2[20] = { { 228.0f, 57.0f, 192.0f }, { 236.0f, 57.0f, 201.0f }, { 244.0f, 57.0f, 204.0f },
{ 250.0f, 58.0f, 213.0f }, { 254.0f, 59.0f, 225.0f }, { 250.0f, 60.0f, 238.0f },
{ 243.0f, 60.0f, 242.0f }, { 235.0f, 60.0f, 238.0f }, { 226.0f, 60.0f, 233.0f },
{ 215.0f, 60.0f, 229.0f }, { 205.0f, 60.0f, 228.0f }, { 198.0f, 60.0f, 229.0f },
{ 191.0f, 60.0f, 227.0f }, { 186.0f, 60.0f, 222.0f }, { 181.0f, 60.0f, 216.0f },
{ 181.0f, 60.0f, 207.0f }, { 184.0f, 60.0f, 196.0f }, { 191.0f, 60.0f, 186.0f },
{ 201.0f, 57.0f, 177.0f }, { 213.0f, 56.0f, 178.0f } };
xyz_t unagi_rail_pos3[25] = { { 228.0f, 57.0f, 192.0f }, { 231.0f, 57.0f, 203.0f }, { 229.0f, 57.0f, 213.0f },
{ 222.0f, 58.0f, 225.0f }, { 212.0f, 59.0f, 226.0f }, { 204.0f, 60.0f, 227.0f },
{ 197.0f, 60.0f, 230.0f }, { 193.0f, 60.0f, 236.0f }, { 195.0f, 60.0f, 246.0f },
{ 201.0f, 60.0f, 253.0f }, { 212.0f, 60.0f, 256.0f }, { 222.0f, 60.0f, 255.0f },
{ 237.0f, 60.0f, 254.0f }, { 243.0f, 60.0f, 246.0f }, { 240.0f, 60.0f, 232.0f },
{ 232.0f, 60.0f, 227.0f }, { 223.0f, 60.0f, 225.0f }, { 209.0f, 60.0f, 225.0f },
{ 198.0f, 60.0f, 220.0f }, { 190.0f, 60.0f, 209.0f }, { 187.0f, 60.0f, 196.0f },
{ 191.0f, 60.0f, 184.0f }, { 197.0f, 60.0f, 178.0f }, { 207.0f, 59.0f, 173.0f },
{ 221.0f, 57.0f, 180.0f } };
xyz_t unagi_normal_to_reverse_rail_pos[12] = {
{ 228.0f, 57.0f, 192.0f }, { 236.0f, 57.0f, 201.0f }, { 244.0f, 57.0f, 204.0f }, { 250.0f, 58.0f, 213.0f },
{ 254.0f, 59.0f, 225.0f }, { 250.0f, 60.0f, 238.0f }, { 243.0f, 60.0f, 242.0f }, { 235.0f, 60.0f, 236.0f },
{ 226.0f, 60.0f, 228.0f }, { 225.0f, 60.0f, 219.0f }, { 228.0f, 58.0f, 208.0f }, { 228.0f, 57.0f, 192.0f }
};
xyz_t unagi_reverse_to_normal_rail_pos[19] = {
{ 228.0f, 57.0f, 192.0f }, { 218.0f, 56.0f, 178.0f }, { 204.0f, 57.0f, 176.0f }, { 191.0f, 58.0f, 186.0f },
{ 184.0f, 59.0f, 196.0f }, { 189.0f, 60.0f, 208.0f }, { 198.0f, 60.0f, 215.0f }, { 205.0f, 60.0f, 224.0f },
{ 204.0f, 60.0f, 235.0f }, { 196.0f, 60.0f, 242.0f }, { 188.0f, 60.0f, 241.0f }, { 183.0f, 60.0f, 233.0f },
{ 180.0f, 60.0f, 219.0f }, { 181.0f, 60.0f, 207.0f }, { 184.0f, 60.0f, 196.0f }, { 191.0f, 59.0f, 186.0f },
{ 204.0f, 57.0f, 176.0f }, { 218.0f, 56.0f, 178.0f }, { 228.0f, 57.0f, 192.0f }
};
xyz_t* unagi_rail_tbl[3] = { unagi_rail_pos, unagi_rail_pos2, unagi_rail_pos3 };
int unagi_rail_num_tbl[3] = {
ARRAY_LEN(unagi_rail_pos),
ARRAY_LEN(unagi_rail_pos2),
ARRAY_LEN(unagi_rail_pos3),
};
void mfish_unagi_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
mfish_onefish_ct(actor, gamex);
@@ -247,7 +298,6 @@ void mfish_unagi_reverse_to_normal(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex)
}
void mfish_unagi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
//! NOTE: wrong floats in this file, based on objdiff
xyz_t p1, p2, p3;
p1 = ZeroVec;
p2 = ZeroVec;
@@ -303,35 +353,35 @@ void mfish_unagi_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
Museum_Fish_objchk_pos_set(actor, gamex);
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 1) {
if (joint_idx == 1) {
int i = (s16)(actor->_632 * 0.5f * sin_s(actor->_636));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
trans->z += actor->_5F4 * sin_s(actor->_636 + DEG2SHORT_ANGLE(90));
} else if (joint_num == 2) {
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
joint_pos->z += actor->_5F4 * sin_s(actor->_636 + DEG2SHORT_ANGLE(90));
} else if (joint_idx == 2) {
int i;
i = DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x3c)) - (int)(actor->_618.z * (1.0f + 0.01f * GETREG(TAKREG, 0x38)));
i += (s16)(actor->_632 * 0.75f * sin_s(actor->_636 + DEG2SHORT_ANGLE2(90)));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE2(-90), DEG2SHORT_ANGLE2(90));
} else if (joint_num == 3) {
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE2(-90), DEG2SHORT_ANGLE2(90));
} else if (joint_idx == 3) {
int i;
i = DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x3d)) - (int)(actor->_38._538.x * (1.1f + 0.01f * GETREG(TAKREG, 0x39)));
i += (s16)(actor->_632 * sin_s(actor->_636 + DEG2SHORT_ANGLE(180)));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
} else if (joint_num == 4) {
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
} else if (joint_idx == 4) {
int i;
i = DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x3e)) - (int)(actor->_38._538.y * (1.2f + 0.01f * GETREG(TAKREG, 0x3a)));
i += (s16)(actor->_632 * 0.75f * sin_s(actor->_636 + DEG2SHORT_ANGLE(270)));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
} else if (joint_num == 5) {
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
} else if (joint_idx == 5) {
int i;
i = DEG2SHORT_ANGLE2(GETREG(TAKREG, 0x3f)) - (int)(actor->_38._538.z * (1.3f + 0.01f * GETREG(TAKREG, 0x3b)));
i += (s16)(actor->_632 * 0.5f * sin_s(actor->_636 + DEG2SHORT_ANGLE(0)));
joint1->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
joint_rot->y = MY_CLAMP(i, DEG2SHORT_ANGLE(-90), DEG2SHORT_ANGLE(90));
}
return TRUE;
}
+20 -19
View File
@@ -1,3 +1,4 @@
#include "ac_museum_fish_priv.h"
void mfish_zarigani_ct(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
YET_SKELETON* skele = &actor->_38;
@@ -181,28 +182,28 @@ void mfish_zarigani_mv(MUSEUM_FISH_PRIVATE_DATA* actor, GAME* gamex) {
}
}
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) {
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) {
MUSEUM_FISH_PRIVATE_DATA* actor = (MUSEUM_FISH_PRIVATE_DATA*)arg;
if (joint_num == 2) {
joint1->x += (s16)(actor->_60C.x >> 3);
} else if (joint_num == 3) {
joint1->z += (s16)((joint1->z + DEG2SHORT_ANGLE2(-90.65f) + GETREG(TAKREG, 0x2a)) *
(1.5f + GETREG(TAKREG, 0x29) * 0.1f));
} else if (joint_num == 5) {
joint1->x += (s16)DEG2SHORT_ANGLE2(3.0f * sin_s(actor->_638));
joint1->z -= (s16)DEG2SHORT_ANGLE2(5.0f * cos_s(actor->_638));
joint1->z += (s16)(actor->_618.z * (0.4f + cos_s(actor->_638) * 0.4f));
} else if (joint_num == 7) {
joint1->x += (s16)DEG2SHORT_ANGLE2(3.0f * sin_s(actor->_638));
joint1->z -= (s16)DEG2SHORT_ANGLE2(5.0f * cos_s(actor->_638));
joint1->z += (s16)(actor->_618.z * (0.4f + cos_s(actor->_638) * 0.4f));
} else if (joint_num == 8) {
joint1->z >>= 2;
if (joint_idx == 2) {
joint_rot->x += (s16)(actor->_60C.x >> 3);
} else if (joint_idx == 3) {
joint_rot->z += (s16)((joint_rot->z + DEG2SHORT_ANGLE2(-90.65f) + GETREG(TAKREG, 0x2a)) *
(1.5f + GETREG(TAKREG, 0x29) * 0.1f));
} else if (joint_idx == 5) {
joint_rot->x += (s16)DEG2SHORT_ANGLE2(3.0f * sin_s(actor->_638));
joint_rot->z -= (s16)DEG2SHORT_ANGLE2(5.0f * cos_s(actor->_638));
joint_rot->z += (s16)(actor->_618.z * (0.4f + cos_s(actor->_638) * 0.4f));
} else if (joint_idx == 7) {
joint_rot->x += (s16)DEG2SHORT_ANGLE2(3.0f * sin_s(actor->_638));
joint_rot->z -= (s16)DEG2SHORT_ANGLE2(5.0f * cos_s(actor->_638));
joint_rot->z += (s16)(actor->_618.z * (0.4f + cos_s(actor->_638) * 0.4f));
} else if (joint_idx == 8) {
joint_rot->z >>= 2;
if (actor->_60C.x < 0) {
joint1->z += actor->_60C.x;
joint_rot->z += actor->_60C.x;
} else {
joint1->z += (s16)(actor->_60C.x * (GETREG(TAKREG, 0x20) * 0.1f + 3.0f));
joint_rot->z += (s16)(actor->_60C.x * (GETREG(TAKREG, 0x20) * 0.1f + 3.0f));
}
}
return TRUE;