mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
171 lines
3.7 KiB
C
171 lines
3.7 KiB
C
#ifndef AC_GYOEI_H
|
|
#define AC_GYOEI_H
|
|
|
|
#include "types.h"
|
|
#include "ac_tools.h"
|
|
#include "ac_gyoei_h.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define aGYO_MAX_GYOEI 2
|
|
#define aGYO_EXIST_MAX 4
|
|
|
|
enum {
|
|
aGYO_GYO_TYPE_TEST,
|
|
aGYO_GYO_TYPE_KASEKI,
|
|
|
|
aGYO_GYO_TYPE_NUM
|
|
};
|
|
|
|
enum {
|
|
aGYO_ROD_NORMAL,
|
|
aGYO_ROD_GOLDEN,
|
|
|
|
aGYO_ROD_NUM
|
|
};
|
|
|
|
enum {
|
|
aGYO_DRAW_TYPE_GYOEI,
|
|
aGYO_DRAW_TYPE_FISH,
|
|
|
|
aGYO_DRAW_TYPE_NUM
|
|
};
|
|
|
|
/* TODO: should we use the internal names for fish? */
|
|
enum fish_type {
|
|
aGYO_TYPE_CRUCIAN_CARP,
|
|
aGYO_TYPE_BROOK_TROUT,
|
|
aGYO_TYPE_CARP,
|
|
aGYO_TYPE_KOI,
|
|
aGYO_TYPE_CATFISH,
|
|
aGYO_TYPE_SMALL_BASS,
|
|
aGYO_TYPE_BASS,
|
|
aGYO_TYPE_LARGE_BASS,
|
|
aGYO_TYPE_BLUEGILL,
|
|
aGYO_TYPE_GIANT_CATFISH,
|
|
aGYO_TYPE_GIANT_SNAKEHEAD,
|
|
aGYO_TYPE_BARBEL_STEED,
|
|
aGYO_TYPE_DACE,
|
|
aGYO_TYPE_PALE_CHUB,
|
|
aGYO_TYPE_BITTERLING,
|
|
aGYO_TYPE_LOACH,
|
|
aGYO_TYPE_POND_SMELT,
|
|
aGYO_TYPE_SWEETFISH,
|
|
aGYO_TYPE_CHERRY_SALMON,
|
|
aGYO_TYPE_LARGE_CHAR,
|
|
aGYO_TYPE_RAINBOW_TROUT,
|
|
aGYO_TYPE_STRINGFISH,
|
|
aGYO_TYPE_SALMON,
|
|
aGYO_TYPE_GOLDFISH,
|
|
aGYO_TYPE_PIRANHA,
|
|
aGYO_TYPE_AROWANA,
|
|
aGYO_TYPE_EEL,
|
|
aGYO_TYPE_FRESHWATER_GOBY,
|
|
aGYO_TYPE_ANGELFISH,
|
|
aGYO_TYPE_GUPPY,
|
|
aGYO_TYPE_POPEYED_GOLDFISH,
|
|
aGYO_TYPE_COELACANTH,
|
|
aGYO_TYPE_CRAWFISH,
|
|
aGYO_TYPE_FROG,
|
|
aGYO_TYPE_KILLIFISH,
|
|
aGYO_TYPE_JELLYFISH,
|
|
aGYO_TYPE_SEA_BASS,
|
|
aGYO_TYPE_RED_SNAPPER,
|
|
aGYO_TYPE_BARRED_KNIFEJAW,
|
|
aGYO_TYPE_ARAPAIMA,
|
|
|
|
aGYO_TYPE_NUM,
|
|
|
|
/* non-fish fish */
|
|
aGYO_TYPE_WHALE = aGYO_TYPE_NUM,
|
|
aGYO_TYPE_EMPTY_CAN,
|
|
aGYO_TYPE_BOOT,
|
|
aGYO_TYPE_OLD_TIRE,
|
|
aGYO_TYPE_SALMON2,
|
|
|
|
aGYO_TYPE_EXTENDED_NUM
|
|
};
|
|
|
|
#define aGYO_TYPE_INVALID -1
|
|
|
|
#define aGYO_IS_FISH_TRASH(type) ((type) >= aGYO_TYPE_EMPTY_CAN && (type) <= aGYO_TYPE_OLD_TIRE)
|
|
|
|
enum {
|
|
aGYO_SIZE_XXS,
|
|
aGYO_SIZE_XS,
|
|
aGYO_SIZE_S,
|
|
aGYO_SIZE_M,
|
|
aGYO_SIZE_L,
|
|
aGYO_SIZE_XL,
|
|
aGYO_SIZE_XXL,
|
|
aGYO_SIZE_WHALE,
|
|
|
|
aGYO_SIZE_NUM
|
|
};
|
|
|
|
typedef struct gyo_ctrl_actor_s aGYO_CTRL_ACTOR;
|
|
|
|
typedef void (*aGYO_ACT_PROC)(ACTOR*, GAME*);
|
|
|
|
/* sizeof(aGYO_CTRL_ACTOR) == 0x250 */
|
|
struct gyo_ctrl_actor_s {
|
|
/* 0x000 */ TOOLS_ACTOR tools_class;
|
|
/* 0x1CC */ ACTOR* linked_actor; /* Generally UKI_ACTOR */
|
|
/* 0x1D0 */ int exist;
|
|
/* 0x1D4 */ int draw_type;
|
|
/* 0x1D8 */ int gyo_type;
|
|
/* 0x1DC */ s16 size_type;
|
|
/* 0x1E0 */ int action;
|
|
/* 0x1E4 */ aGYO_ACT_PROC act_proc;
|
|
/* 0x1E8 */ int anim_frame;
|
|
/* 0x1EC */ f32 speed_step;
|
|
/* 0x1F0 */ f32 speed;
|
|
/* 0x1F4 */ f32 range;
|
|
/* 0x1F8 */ int _1F8;
|
|
/* 0x1FC */ ClObjPipe_c col_pipe;
|
|
/* 0x218 */ int work0;
|
|
/* 0x21C */ f32 fwork0;
|
|
/* 0x220 */ f32 fwork1;
|
|
/* 0x224 */ f32 fwork2;
|
|
/* 0x228 */ f32 fwork3;
|
|
/* 0x22C */ s16 swork0;
|
|
/* 0x22E */ s16 swork1;
|
|
/* 0x230 */ s16 swork2;
|
|
/* 0x232 */ s16 swork3;
|
|
/* 0x234 */ s16 swork4;
|
|
/* 0x236 */ s16 move_counter;
|
|
/* 0x238 */ s16 move_angle;
|
|
/* 0x23A */ s16 pattern_subcounter;
|
|
/* 0x23C */ s16 pattern_counter;
|
|
/* 0x23E */ s16 touch_counter;
|
|
/* 0x240 */ u16 gyo_flags;
|
|
/* 0x242 */ u8 swim_flag;
|
|
/* 0x243 */ u8 escape_flag;
|
|
/* 0x244 */ int alpha;
|
|
/* 0x248 */ int col_flags;
|
|
/* 0x24C */ u8* overlay_p;
|
|
};
|
|
|
|
typedef struct gyoei_actor_s GYOEI_ACTOR;
|
|
|
|
/* sizeof(GYOEI_ACTOR) == 0x628 */
|
|
struct gyoei_actor_s {
|
|
/* 0x000 */ ACTOR actor_class;
|
|
/* 0x174 */ aGYO_CTRL_ACTOR ctrl[aGYO_MAX_GYOEI];
|
|
/* 0x614 */ u8 exist[aGYO_EXIST_MAX];
|
|
/* 0x618 */ int segment_type[aGYO_EXIST_MAX];
|
|
};
|
|
|
|
extern void aGTT_actor_init(ACTOR* actorx, GAME* game); // ac_gyo_test.c
|
|
extern void aGKK_actor_init(ACTOR* actorx, GAME* game); // ac_gyo_kaseki
|
|
|
|
extern ACTOR_PROFILE Gyoei_Profile;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|