forked from ACreTeam/ac-decomp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathac_gyoei.h
163 lines (139 loc) · 3.4 KB
/
ac_gyoei.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#ifndef AC_GYOEI_H
#define AC_GYOEI_H
#include "types.h"
#include "ac_tools.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aGYO_MAX_GYOEI 2
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
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[4];
/* 0x618 */ int segment_type[4];
};
extern ACTOR_PROFILE Gyoei_Profile;
#ifdef __cplusplus
}
#endif
#endif