mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-08-22 05:49:04 -04:00
100% text, add -requireprotos
This commit is contained in:
+375
-1
@@ -3,11 +3,386 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "m_field_info.h"
|
||||
#include "bg_item_h.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define bIT_PIT_NUM 13
|
||||
#define bIT_DROP_NUM 19
|
||||
#define bIT_FRUIT_DROP_NUM 6
|
||||
#define bIT_HOLE_NUM 1
|
||||
#define bIT_SHIN_NUM 1
|
||||
#define bIT_TEN_COIN_NUM 5
|
||||
#define bIT_FADE_NUM 3
|
||||
|
||||
enum {
|
||||
bIT_TYPE_CAT_BG_ITEM,
|
||||
bIT_TYPE_CAT_BG_ITEM2,
|
||||
bIT_TYPE_CAT_FTR,
|
||||
bIT_TYPE_CAT_ITEM1,
|
||||
bIT_TYPE_CAT_CRACK,
|
||||
bIT_TYPE_CAT_DUMMY,
|
||||
|
||||
bIT_TYPE_CAT_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
bIT_DRAW_TYPE_STUMP1,
|
||||
bIT_DRAW_TYPE_STUMP2,
|
||||
bIT_DRAW_TYPE_STUMP3,
|
||||
bIT_DRAW_TYPE_STUMP4,
|
||||
bIT_DRAW_TYPE_FENCE,
|
||||
bIT_DRAW_TYPE_NOTICE,
|
||||
bIT_DRAW_TYPE_GRASS,
|
||||
bIT_DRAW_TYPE_MAPBOARD,
|
||||
bIT_DRAW_TYPE_MELODY,
|
||||
bIT_DRAW_TYPE_FENCES,
|
||||
bIT_DRAW_TYPE_HONYCOMB,
|
||||
bIT_DRAW_TYPE_HOLE00_G,
|
||||
bIT_DRAW_TYPE_HOLE00_S,
|
||||
bIT_DRAW_TYPE_CRACK00_G,
|
||||
bIT_DRAW_TYPE_CRACK00_S,
|
||||
bIT_DRAW_TYPE_HOLE00_SHIN_G,
|
||||
bIT_DRAW_TYPE_STONE_A,
|
||||
bIT_DRAW_TYPE_STONE_B,
|
||||
bIT_DRAW_TYPE_STONE_C,
|
||||
bIT_DRAW_TYPE_STONE_D,
|
||||
bIT_DRAW_TYPE_STONE_E,
|
||||
bIT_DRAW_TYPE_TANE,
|
||||
bIT_DRAW_TYPE_TREE0,
|
||||
bIT_DRAW_TYPE_TREE1,
|
||||
bIT_DRAW_TYPE_TREE2,
|
||||
bIT_DRAW_TYPE_TREE3,
|
||||
bIT_DRAW_TYPE_TREE4,
|
||||
bIT_DRAW_TYPE_TREE4_AP,
|
||||
bIT_DRAW_TYPE_TREE4_OR,
|
||||
bIT_DRAW_TYPE_TREE4_PH,
|
||||
bIT_DRAW_TYPE_TREE4_PR,
|
||||
bIT_DRAW_TYPE_TREE4_NT,
|
||||
bIT_DRAW_TYPE_TREE4_BG,
|
||||
bIT_DRAW_TYPE_FLOWER_LEAF,
|
||||
bIT_DRAW_TYPE_FLOWER00,
|
||||
bIT_DRAW_TYPE_FLOWER01,
|
||||
bIT_DRAW_TYPE_FLOWER02,
|
||||
bIT_DRAW_TYPE_TREE0_DEAD,
|
||||
bIT_DRAW_TYPE_PALM000,
|
||||
bIT_DRAW_TYPE_PALM001,
|
||||
bIT_DRAW_TYPE_PALM002,
|
||||
bIT_DRAW_TYPE_PALM003,
|
||||
bIT_DRAW_TYPE_PALM004,
|
||||
bIT_DRAW_TYPE_PALM004_CC,
|
||||
bIT_DRAW_TYPE_PALM_STUMP001,
|
||||
bIT_DRAW_TYPE_PALM_STUMP002,
|
||||
bIT_DRAW_TYPE_PALM_STUMP003,
|
||||
bIT_DRAW_TYPE_PALM_STUMP004,
|
||||
bIT_DRAW_TYPE_PALM000_DEAD,
|
||||
bIT_DRAW_TYPE_CEDAR000,
|
||||
bIT_DRAW_TYPE_CEDAR001,
|
||||
bIT_DRAW_TYPE_CEDAR002,
|
||||
bIT_DRAW_TYPE_CEDAR003,
|
||||
bIT_DRAW_TYPE_CEDAR004,
|
||||
bIT_DRAW_TYPE_CEDAR_STUMP001,
|
||||
bIT_DRAW_TYPE_CEDAR_STUMP002,
|
||||
bIT_DRAW_TYPE_CEDAR_STUMP003,
|
||||
bIT_DRAW_TYPE_CEDAR_STUMP004,
|
||||
bIT_DRAW_TYPE_CEDAR000_DEAD,
|
||||
bIT_DRAW_TYPE_GOLD_TREE000,
|
||||
bIT_DRAW_TYPE_GOLD_TREE001,
|
||||
bIT_DRAW_TYPE_GOLD_TREE002,
|
||||
bIT_DRAW_TYPE_GOLD_TREE003,
|
||||
bIT_DRAW_TYPE_GOLD_TREE004,
|
||||
bIT_DRAW_TYPE_GOLD_TREE_STUMP001,
|
||||
bIT_DRAW_TYPE_GOLD_TREE_STUMP002,
|
||||
bIT_DRAW_TYPE_GOLD_TREE_STUMP003,
|
||||
bIT_DRAW_TYPE_GOLD_TREE_STUMP004,
|
||||
bIT_DRAW_TYPE_GOLD_TREE000_DEAD,
|
||||
bIT_DRAW_TYPE_APPLE,
|
||||
bIT_DRAW_TYPE_ORANGE,
|
||||
bIT_DRAW_TYPE_PEACH,
|
||||
bIT_DRAW_TYPE_PEAR,
|
||||
bIT_DRAW_TYPE_NUTS,
|
||||
bIT_DRAW_TYPE_MATUTAKE,
|
||||
bIT_DRAW_TYPE_KABU,
|
||||
bIT_DRAW_TYPE_FISH,
|
||||
bIT_DRAW_TYPE_BAG,
|
||||
bIT_DRAW_TYPE_LEAF,
|
||||
bIT_DRAW_TYPE_ROLL,
|
||||
bIT_DRAW_TYPE_BOX,
|
||||
bIT_DRAW_TYPE_PACK,
|
||||
bIT_DRAW_TYPE_PRESENT,
|
||||
bIT_DRAW_TYPE_SEED,
|
||||
bIT_DRAW_TYPE_HANIWA,
|
||||
bIT_DRAW_TYPE_OTHER,
|
||||
bIT_DRAW_TYPE_86,
|
||||
bIT_DRAW_TYPE_TOOL,
|
||||
bIT_DRAW_TYPE_FOSSIL,
|
||||
bIT_DRAW_TYPE_TRASH,
|
||||
bIT_DRAW_TYPE_90,
|
||||
bIT_DRAW_TYPE_OTOSI,
|
||||
bIT_DRAW_TYPE_SHELL_A,
|
||||
bIT_DRAW_TYPE_SHELL_B,
|
||||
bIT_DRAW_TYPE_SHELL_C,
|
||||
bIT_DRAW_TYPE_CANDY,
|
||||
bIT_DRAW_TYPE_COCONUT,
|
||||
bIT_DRAW_TYPE_97,
|
||||
bIT_DRAW_TYPE_CLOTH,
|
||||
bIT_DRAW_TYPE_CARPET,
|
||||
bIT_DRAW_TYPE_WALL,
|
||||
bIT_DRAW_TYPE_AXE,
|
||||
bIT_DRAW_TYPE_NET,
|
||||
bIT_DRAW_TYPE_ROD,
|
||||
bIT_DRAW_TYPE_SCOOP,
|
||||
bIT_DRAW_TYPE_GOLD_AXE,
|
||||
bIT_DRAW_TYPE_GOLD_NET,
|
||||
bIT_DRAW_TYPE_GOLD_ROD,
|
||||
bIT_DRAW_TYPE_GOLD_SCOOP,
|
||||
bIT_DRAW_TYPE_UMBRELLA,
|
||||
bIT_DRAW_TYPE_PINWHEEL,
|
||||
bIT_DRAW_TYPE_FAN,
|
||||
bIT_DRAW_TYPE_PAPER,
|
||||
bIT_DRAW_TYPE_SEEDBAG,
|
||||
bIT_DRAW_TYPE_LUCKBAG,
|
||||
bIT_DRAW_TYPE_GYMCARD,
|
||||
bIT_DRAW_TYPE_MUSIC,
|
||||
bIT_DRAW_TYPE_LOTTERY,
|
||||
bIT_DRAW_TYPE_BONE,
|
||||
bIT_DRAW_TYPE_DIARY,
|
||||
bIT_DRAW_TYPE_FORK,
|
||||
bIT_DRAW_TYPE_FISH2,
|
||||
bIT_DRAW_TYPE_NONE,
|
||||
|
||||
bIT_DRAW_TYPE_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
bIT_PAL_FLOWER_A,
|
||||
bIT_PAL_FLOWER_B,
|
||||
bIT_PAL_FLOWER_C,
|
||||
bIT_PAL_GRASS,
|
||||
bIT_PAL_HOLE_G,
|
||||
bIT_PAL_HOLE_S,
|
||||
bIT_PAL_TREE,
|
||||
bIT_PAL_PALM_TREE,
|
||||
bIT_PAL_GOLD_TREE,
|
||||
|
||||
bIT_PAL_NUM
|
||||
};
|
||||
|
||||
/* sizeof(bg_item_tbl_c) == 0x100 */
|
||||
typedef struct bg_item_tbl_s {
|
||||
u8 info[UT_TOTAL_NUM];
|
||||
} bg_item_tbl_c;
|
||||
|
||||
/* sizeof(bg_item_block_info_tbl_c) == 0x404 */
|
||||
typedef struct block_info_tbl_s {
|
||||
/* 0x000 */ int _000;
|
||||
/* 0x004 */ bg_item_tbl_c info_tbl[mFM_VISIBLE_BLOCK_NUM];
|
||||
} bg_item_block_info_tbl_c;
|
||||
|
||||
/* sizeof(bg_item_type_data_c) == 0xC */
|
||||
typedef struct type_data_s {
|
||||
/* 0x00 */ s8 _00;
|
||||
/* 0x02 */ s16 type;
|
||||
/* 0x04 */ f32* pos_x_tbl_p;
|
||||
/* 0x08 */ f32* pos_z_tbl_p;
|
||||
} bg_item_type_data_c;
|
||||
|
||||
typedef struct draw_pos_s {
|
||||
MtxF mtxf;
|
||||
int _04;
|
||||
s16 next_add_cnt; // this isn't right
|
||||
u8 cull_flag;
|
||||
s8 sub_idx;
|
||||
} bg_item_draw_pos_c;
|
||||
|
||||
typedef struct draw_list_s {
|
||||
void* draw_proc;
|
||||
u8 gfx_idx;
|
||||
u8 mat_idx;
|
||||
} bg_item_draw_list_c;
|
||||
|
||||
typedef struct draw_part_s {
|
||||
Gfx** display_list_table_p;
|
||||
int draw_list_count;
|
||||
bg_item_draw_list_c** draw_list_table_p;
|
||||
int shadow_vtx_count;
|
||||
Vtx* shadow_vtx_p;
|
||||
f32 shadow_len;
|
||||
u8* shadow_vtx_fix_table_p;
|
||||
bg_item_draw_list_c* shadow_draw_list;
|
||||
} bg_item_draw_part_c;
|
||||
|
||||
typedef struct draw_part_table_s {
|
||||
bg_item_draw_part_c* draw_part_p;
|
||||
u16 flags;
|
||||
} bg_item_draw_part_table_c;
|
||||
|
||||
typedef struct draw_data_s {
|
||||
bg_item_draw_pos_c draw_pos[UT_TOTAL_NUM + 1];
|
||||
u16* idx_p;
|
||||
u16 val;
|
||||
} bg_item_draw_data_c;
|
||||
|
||||
typedef struct draw_table_s {
|
||||
bg_item_draw_data_c draw_data;
|
||||
s16 draw_flag;
|
||||
u8 bx;
|
||||
u8 bz;
|
||||
} bg_item_draw_table_c;
|
||||
|
||||
typedef struct common_info_s {
|
||||
bg_item_draw_part_table_c* draw_part_table_p;
|
||||
bg_item_type_data_c** type_data_table_p;
|
||||
f32* pos_table_p;
|
||||
u16* pal_p[bIT_PAL_NUM];
|
||||
u16 _30;
|
||||
} bg_item_common_info_c;
|
||||
|
||||
typedef void (*bIT_ACTOR_DROP_MOVE_PROC)(bg_item_drop_c*);
|
||||
typedef void (*bIT_ACTOR_DROP_DRAW_PROC)(GAME*, bg_item_common_info_c*, bg_item_drop_c*);
|
||||
typedef void (*bIT_ACTOR_DROP_DESTRUCT_PROC)(bg_item_drop_c*);
|
||||
|
||||
struct drop_s {
|
||||
bIT_ACTOR_DROP_MOVE_PROC move_proc;
|
||||
bIT_ACTOR_DROP_DRAW_PROC draw_proc;
|
||||
bIT_ACTOR_DROP_DESTRUCT_PROC dt_proc;
|
||||
s16 mode;
|
||||
mActor_name_t fg_item;
|
||||
mActor_name_t display_fg_item;
|
||||
xyz_t position;
|
||||
xyz_t target_position;
|
||||
xyz_t scale;
|
||||
xyz_t offset;
|
||||
s_xyz angle;
|
||||
s16 _4A;
|
||||
f32 _4C;
|
||||
s16 drop_speed;
|
||||
f32 _54;
|
||||
s16 _58;
|
||||
s16 _5A;
|
||||
s16 _5C;
|
||||
f32 velocity_xz;
|
||||
f32 velocity_y;
|
||||
f32 acceleration_y;
|
||||
u16 flags;
|
||||
s16 _6E;
|
||||
s16 _70;
|
||||
u8 _72;
|
||||
mActor_name_t target_pos_fg_item;
|
||||
u16 _76;
|
||||
u16 _78;
|
||||
f32 _7C;
|
||||
s16 wait_counter;
|
||||
f32 total_distance_y;
|
||||
u16 _88;
|
||||
s16 _8A;
|
||||
ACTOR* actorx_p;
|
||||
s16 _90;
|
||||
s16 layer;
|
||||
xyz_t last_position;
|
||||
f32 last_velocity_xz;
|
||||
f32 last_velocity_y;
|
||||
};
|
||||
|
||||
typedef struct drop_table_s {
|
||||
bg_item_drop_c* drop_p;
|
||||
s16 count;
|
||||
} bg_item_drop_table_c;
|
||||
|
||||
typedef struct pit_s {
|
||||
xyz_t position;
|
||||
f32 scale;
|
||||
s16 mode;
|
||||
mActor_name_t hole_fg_item;
|
||||
s16 hole_timer;
|
||||
s16 wait_counter;
|
||||
s16 wait_type;
|
||||
mActor_name_t fg_item_in_pit;
|
||||
} bg_item_pit_c;
|
||||
|
||||
struct hole_s {
|
||||
xyz_t position;
|
||||
f32 scale;
|
||||
s_xyz angle;
|
||||
s16 mode;
|
||||
mActor_name_t hole_fg_item;
|
||||
mActor_name_t fg_item;
|
||||
u16 counter;
|
||||
u16 max_counter;
|
||||
u16 wait_counter;
|
||||
s16 wait_type;
|
||||
};
|
||||
|
||||
typedef struct shin_s {
|
||||
xyz_t position;
|
||||
mActor_name_t fg_item;
|
||||
u16 mode;
|
||||
} bg_item_shin_c;
|
||||
|
||||
typedef struct ten_coin_s {
|
||||
u8 _00[0x30];
|
||||
xyz_t position;
|
||||
f32 scale;
|
||||
s16 angle;
|
||||
mActor_name_t fg_item;
|
||||
u16 _44;
|
||||
s16 _46;
|
||||
s16 _48;
|
||||
s16 _4A;
|
||||
s16 _4C;
|
||||
s16 _4E;
|
||||
s16 _50;
|
||||
s16 left_frames;
|
||||
s16 total_frames;
|
||||
s16 hit_count;
|
||||
} bg_item_ten_coin_c;
|
||||
|
||||
typedef struct fade_s {
|
||||
xyz_t position;
|
||||
mActor_name_t fg_item;
|
||||
u8 alpha;
|
||||
u8 mode;
|
||||
u8 _10;
|
||||
} bg_item_fade_c;
|
||||
|
||||
typedef int (*bIT_TALK_DISPLAY_LIMIT_CHECK_PROC)(int);
|
||||
|
||||
struct bg_common_s {
|
||||
bg_item_draw_table_c draw_table[mFM_VISIBLE_BLOCK_NUM];
|
||||
bg_item_block_info_tbl_c block_info_table;
|
||||
mFI_item_table_c item_table;
|
||||
bg_item_common_info_c common_info;
|
||||
bg_item_drop_table_c drop_info;
|
||||
bg_item_drop_table_c fruit_drop_info;
|
||||
bg_item_pit_c pit[bIT_PIT_NUM];
|
||||
bg_item_drop_c drop[bIT_DROP_NUM];
|
||||
bg_item_drop_c fruit_drop[bIT_FRUIT_DROP_NUM];
|
||||
bg_item_hole_c hole[bIT_HOLE_NUM];
|
||||
bg_item_shin_c shin[bIT_SHIN_NUM];
|
||||
bg_item_ten_coin_c ten_coin[bIT_TEN_COIN_NUM];
|
||||
bg_item_fade_c fade[bIT_FADE_NUM];
|
||||
bIT_TALK_DISPLAY_LIMIT_CHECK_PROC talk_display_limit_check_proc;
|
||||
ACTOR* bg_item_actorx_p;
|
||||
u16 flags;
|
||||
int _139E0[mFM_VISIBLE_BLOCK_NUM];
|
||||
int _139F4[mFM_VISIBLE_BLOCK_NUM];
|
||||
};
|
||||
|
||||
typedef struct blk_idx_info_s {
|
||||
u16 idx[bIT_DRAW_TYPE_MAX];
|
||||
} bg_item_idx_info_c;
|
||||
|
||||
typedef struct bg_item_actor_s BG_ITEM_ACTOR;
|
||||
|
||||
struct bg_item_actor_s {
|
||||
ACTOR actor_class;
|
||||
bg_item_common_c common;
|
||||
bg_item_idx_info_c item_idx_info[mFM_VISIBLE_BLOCK_NUM];
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE BgItem_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -15,4 +390,3 @@ extern ACTOR_PROFILE BgItem_Profile;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+48
-15
@@ -10,27 +10,60 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct background_item_shadow_s {
|
||||
u32 vtx_num;
|
||||
u8* vtx_fix_flags;
|
||||
f32 size;
|
||||
Vtx* vtx;
|
||||
Gfx* gfx;
|
||||
u32 vtx_num;
|
||||
u8* vtx_fix_flags;
|
||||
f32 size;
|
||||
Vtx* vtx;
|
||||
Gfx* gfx;
|
||||
} bIT_ShadowData_c;
|
||||
|
||||
typedef int (*bIT_DRAW_BF_PROC)(Gfx**, rgba_t*);
|
||||
typedef int (*bIT_DRAW_AF_PROC)(Gfx**, rgba_t*);
|
||||
|
||||
typedef struct bg_common_s bg_item_common_c;
|
||||
typedef struct drop_s bg_item_drop_c;
|
||||
typedef struct hole_s bg_item_hole_c;
|
||||
|
||||
typedef void (*bIT_SHADOW_DRAW_PROC)(GAME*, bIT_ShadowData_c*, int);
|
||||
|
||||
typedef int (*bIT_FRUIT_SET_PROC)(mActor_name_t item, int ut_x, int ut_z, s16 p0, s16 p1);
|
||||
typedef void (*bIT_SINGLE_DRAW_PROC)(GAME* game, mActor_name_t fg_no, xyz_t* pos, f32 scale_f, bIT_DRAW_BF_PROC draw_bf,
|
||||
bIT_DRAW_AF_PROC draw_af, rgba_t* col);
|
||||
typedef int (*bIT_TREE_CUTCOUNT_CHECK_PROC)(GAME* game, int ut_x, int ut_z);
|
||||
typedef void (*bIT_DIG_HOLE_EFFECT_ENTRY_PROC)(mActor_name_t fg_item, xyz_t* pos, u16 frames, u16 wait_frames);
|
||||
typedef void (*bIT_BURY_HOLE_EFFECT_ENTRY_PROC)(mActor_name_t fg_item, xyz_t* pos, u16 frames);
|
||||
typedef int (*bIT_PIT_FALL_PROC)(mActor_name_t pit_fg_item, int ut_x, int ut_z, mActor_name_t fg_item_in_pit);
|
||||
typedef int (*bIT_PIT_FALL_STOP_PROC)(mActor_name_t pit_fg_item, int ut_x, int ut_z, mActor_name_t fg_item_in_pit);
|
||||
typedef int (*bIT_PIT_EXIT_PROC)(mActor_name_t pit_fg_item, int ut_x, int ut_z, mActor_name_t fg_item_in_pit);
|
||||
typedef int (*bIT_RAND_POS_GET_PROC)(xyz_t* pos, const xyz_t* check_pos);
|
||||
typedef int (*bIT_TEN_COIN_ENTRY_EX_PROC)(xyz_t* pos, s16 angle);
|
||||
typedef int (*bIT_FRUIT_SET_PROC)(mActor_name_t fg_item, int ut_x, int ut_z, s16 count, int type);
|
||||
typedef void (*bIT_FLY_ENTRY_PROC)(mActor_name_t fg_item, xyz_t* pos, s16 angle_y);
|
||||
typedef void (*bIT_ITEM_TREE_FRUIT_DROP_PROC)(mActor_name_t item, int ut_x, int ut_z, xyz_t* pos);
|
||||
|
||||
typedef int (*bIT_PLAYER_DROP_ENTRY_PROC)(GAME* game, mActor_name_t fg_item, int ut_x, int ut_z, s16 layer);
|
||||
typedef int (*bIT_DROP_ENTRY_V1_PROC)(mActor_name_t fg_item, xyz_t* pos, xyz_t* target_pos);
|
||||
typedef int (*bIT_FADE_ENTRY_PROC)(mActor_name_t fg_name, xyz_t* pos);
|
||||
|
||||
typedef struct background_item_clip_s {
|
||||
void* _00;
|
||||
bIT_SHADOW_DRAW_PROC draw_shadow_proc;
|
||||
void* _08[(0x30 - 0x08) / sizeof(void*)];
|
||||
bIT_FRUIT_SET_PROC fruit_set_proc;
|
||||
void* _34;
|
||||
bIT_ITEM_TREE_FRUIT_DROP_PROC item_tree_fruit_drop_proc;
|
||||
void* _3C[(0x54 - 0x3C) / sizeof(void*)];
|
||||
bg_item_common_c* bg_item_common_p;
|
||||
bIT_SHADOW_DRAW_PROC draw_shadow_proc;
|
||||
bIT_SINGLE_DRAW_PROC single_draw_proc;
|
||||
bIT_TREE_CUTCOUNT_CHECK_PROC tree_cutcount_check_proc;
|
||||
bIT_DIG_HOLE_EFFECT_ENTRY_PROC dig_hole_effect_entry_proc;
|
||||
bIT_BURY_HOLE_EFFECT_ENTRY_PROC bury_hole_effect_entry_proc;
|
||||
bIT_PIT_FALL_PROC pit_fall_proc;
|
||||
bIT_PIT_FALL_STOP_PROC pit_fall_stop_proc;
|
||||
bIT_PIT_EXIT_PROC pit_exit_proc;
|
||||
void* _24;
|
||||
bIT_RAND_POS_GET_PROC rand_pos_get_proc;
|
||||
bIT_TEN_COIN_ENTRY_EX_PROC ten_coin_entry_ex_proc;
|
||||
bIT_FRUIT_SET_PROC fruit_set_proc;
|
||||
bIT_FLY_ENTRY_PROC fly_entry_proc;
|
||||
bIT_ITEM_TREE_FRUIT_DROP_PROC item_tree_fruit_drop_proc;
|
||||
bIT_PLAYER_DROP_ENTRY_PROC player_drop_entry_proc;
|
||||
bIT_DROP_ENTRY_V1_PROC drop_entry_v1_proc;
|
||||
void* _44;
|
||||
void* _48;
|
||||
ACTOR* bg_item_actorx;
|
||||
bIT_FADE_ENTRY_PROC fade_entry_proc;
|
||||
} bIT_Clip_c;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -16,7 +16,7 @@ typedef struct Arena {
|
||||
/* 0x20 */ u8 unk_20;
|
||||
/* 0x21 */ u8 isInit;
|
||||
/* 0x22 */ u8 flag;
|
||||
/* 0x24 */ u8 pad[0x2C-0x24];
|
||||
/* 0x24 */ u8 pad[0x2C - 0x24];
|
||||
} Arena; // size = 0x2C
|
||||
|
||||
typedef struct ArenaNode {
|
||||
@@ -30,8 +30,8 @@ typedef struct ArenaNode {
|
||||
/* 0x18 */ OSId threadId;
|
||||
/* 0x1C */ Arena* arena;
|
||||
/* 0x20 */ OSTime time;
|
||||
/* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding
|
||||
} ArenaNode; // size = 0x30
|
||||
/* 0x28 */ u8 unk_28[0x30 - 0x28]; // probably padding
|
||||
} ArenaNode; // size = 0x30
|
||||
|
||||
void setDebugInfo(ArenaNode*, const char*, s32, Arena*);
|
||||
void arena_lock_init(Arena*);
|
||||
@@ -61,8 +61,8 @@ u32 __osGetFreeSize(Arena*);
|
||||
u32 __osGetMemBlockSize(Arena*, void*);
|
||||
void __osDisplayArena(Arena*);
|
||||
int __osCheckArena(Arena*);
|
||||
extern int __osMallocIsInitalized(Arena*);
|
||||
|
||||
extern int __osMalloc_FreeBlockTest_Enable;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
typedef void (*mActor_proc)(ACTOR*, GAME*);
|
||||
#define NONE_ACTOR_PROC ((mActor_proc)&none_proc1)
|
||||
#define NONE_ACTOR_PROC ((mActor_proc) & none_proc1)
|
||||
|
||||
#define mAc_MAX_ACTORS 200
|
||||
|
||||
@@ -42,7 +42,7 @@ typedef enum bank_id {
|
||||
ACTOR_OBJ_BANK_1,
|
||||
ACTOR_OBJ_BANK_2,
|
||||
ACTOR_OBJ_BANK_KEEP,
|
||||
ACTOR_OBJ_BANK_4,
|
||||
ACTOR_OBJ_BANK_BGITEM,
|
||||
ACTOR_OBJ_BANK_ROOM_SUNSHINE,
|
||||
ACTOR_OBJ_BANK_6,
|
||||
ACTOR_OBJ_BANK_AIRPLANE,
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ extern void mBGMPsComp_make_ps_quietField(u16 stop_type);
|
||||
extern void mBGMPsComp_make_ps_fc_quietField(u16 stop_type);
|
||||
extern void mBGMPsComp_make_ps_fieldSuddenEv(u8 bgm_num, u16 stop_type, u8 priority);
|
||||
extern void mBGMPsComp_delete_ps_fanfare(u8 bgm_num, u16 stop_type);
|
||||
extern void mBGMPsComp_delete_ps_wipe();
|
||||
extern void mBGMPsComp_delete_ps_quiet();
|
||||
extern void mBGMPsComp_delete_ps_demo(u8 bgm_num, u16 stop_type);
|
||||
extern void mBGMPsComp_delete_ps_happening(u8 bgm_num, u16 stop_type);
|
||||
extern void mBGMPsComp_delete_ps_room(u8 bgm_num, u16 stop_type);
|
||||
|
||||
@@ -53,6 +53,7 @@ extern void mCD_toNextLand();
|
||||
|
||||
extern int mCD_EraseBrokenLand_bg(void*);
|
||||
extern int mCD_card_format_bg(u8);
|
||||
extern void mCD_ReCheckLoadLand(GAME_PLAY* play);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -271,6 +271,12 @@ extern int mCoBG_RegistMoveBg(mCoBG_bg_regist_c* bg_regist, xyz_t* wpos, xyz_t*
|
||||
mCoBG_bg_size_c* bg_size, f32* scale_percent, mCoBG_bg_contact_c* bg_contact, xyz_t* ofs,
|
||||
int type, u32 attribute, f32 check_dist);
|
||||
extern void mCoBG_CrossOffMoveBg(int move_bg_idx);
|
||||
extern int mCoBG_CheckPlace(xyz_t wpos);
|
||||
extern int mCoBG_CheckSandHole_ClData(mCoBG_Collision_u* col);
|
||||
extern int mCoBG_GetHoleNumber_ClData(mCoBG_Collision_u* col);
|
||||
extern void mCoBG_GetBgNorm_FromWpos(xyz_t* norm, xyz_t wpos);
|
||||
extern int mCoBG_GetWaterFlow(xyz_t* water_flow, u32 attr);
|
||||
extern void mCoBG_SetAttribute(xyz_t pos, u32 attr);
|
||||
|
||||
extern void mCoBG_InitMoveBgData();
|
||||
extern void mCoBG_InitBlockBgCheckMode();
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef M_DESIGN_OVL_H
|
||||
#define M_DESIGN_OVL_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_mask_cat.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern void mDE_maskcat_init(MaskCat_c* mask_cat);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+361
-352
@@ -15,7 +15,7 @@ extern "C" {
|
||||
#define mEv_TODAY_EVENT_NUM 16
|
||||
|
||||
#define mEv_SCHEDULE_LAST_WEEKDAY_OF_MONTH 6 /* day of last weekday of the month */
|
||||
#define mEv_SCHEDULE_EVERY_WEEK 7 /* scheduled for the desired day this week (e.g. this saturday) */
|
||||
#define mEv_SCHEDULE_EVERY_WEEK 7 /* scheduled for the desired day this week (e.g. this saturday) */
|
||||
|
||||
/* Month flags */
|
||||
#define mEv_SCHEDULE_HARVEST_MOON_DATE 0x40 /* Use this year's lunisolar harvest moon date */
|
||||
@@ -26,12 +26,14 @@ extern "C" {
|
||||
#define mEv_SCHEDULE_LUNAR(m) (mEv_SCHEDULE_HARVEST_MOON_DATE | ((m) & 0xF))
|
||||
|
||||
/* Day flags */
|
||||
#define mEv_SCHEDULE_WEEKLY 0x80 /* Event happens on a given weekday and week of the month */
|
||||
#define mEv_SCHEDULE_WEEKLY 0x80 /* Event happens on a given weekday and week of the month */
|
||||
#define mEv_SCHEDULE_TOWN_DAY 0x40 /* Use save data 'town day' day */
|
||||
#define mEv_SCHEDULE_DAY_AFTER 0x40 /* When used in conjunction with the 'weekly' flag, it schedules on the day after the Nth weekday */
|
||||
#define mEv_SCHEDULE_DAY_AFTER \
|
||||
0x40 /* When used in conjunction with the 'weekly' flag, it schedules on the day after the Nth weekday */
|
||||
#define mEv_SCHEDULE_LAST_DAY_OF_MONTH 0x20
|
||||
|
||||
#define mEv_SCHEDULE_MAKE_WEEKLY_DATA(week, weekday) (mEv_SCHEDULE_WEEKLY | ((((week) & 0b111) << 3) | ((weekday) & 0b111)))
|
||||
#define mEv_SCHEDULE_MAKE_WEEKLY_DATA(week, weekday) \
|
||||
(mEv_SCHEDULE_WEEKLY | ((((week) & 0b111) << 3) | ((weekday) & 0b111)))
|
||||
#define mEv_SCHEDULE_1ST_WEEKDAY(weekday) mEv_SCHEDULE_MAKE_WEEKLY_DATA(1, weekday)
|
||||
#define mEv_SCHEDULE_2ND_WEEKDAY(weekday) mEv_SCHEDULE_MAKE_WEEKLY_DATA(2, weekday)
|
||||
#define mEv_SCHEDULE_3RD_WEEKDAY(weekday) mEv_SCHEDULE_MAKE_WEEKLY_DATA(3, weekday)
|
||||
@@ -41,7 +43,7 @@ extern "C" {
|
||||
#define mEv_SCHEDULE_EVERY_WEEKDAY(weekday) mEv_SCHEDULE_MAKE_WEEKLY_DATA(mEv_SCHEDULE_EVERY_WEEK, weekday)
|
||||
|
||||
/* Hour flags */
|
||||
#define mEv_SCHEDULE_TODAY 0x80 /* event will be active on the day loaded */
|
||||
#define mEv_SCHEDULE_TODAY 0x80 /* event will be active on the day loaded */
|
||||
#define mEv_SCHEDULE_MULTIDAY 0x40 /* event scheduled over more than a single day */
|
||||
#define mEv_SCHEDULE_USE_SAVE_SLOT_VALUE 0x20
|
||||
|
||||
@@ -51,39 +53,39 @@ extern "C" {
|
||||
#define mEv_TO_MONTH(month_day) ((lbRTC_month_t)((month_day) >> 8))
|
||||
|
||||
typedef union event_monthday_s {
|
||||
struct {
|
||||
u8 month;
|
||||
u8 day;
|
||||
};
|
||||
u16 raw;
|
||||
struct {
|
||||
u8 month;
|
||||
u8 day;
|
||||
};
|
||||
u16 raw;
|
||||
} mEv_MonthDay_u;
|
||||
|
||||
typedef struct event_today_s {
|
||||
int type;
|
||||
u32 active_hours; /* bitfield (24 bits) */
|
||||
mEv_MonthDay_u begin_date;
|
||||
mEv_MonthDay_u end_date;
|
||||
s16 status;
|
||||
u16 pad;
|
||||
int type;
|
||||
u32 active_hours; /* bitfield (24 bits) */
|
||||
mEv_MonthDay_u begin_date;
|
||||
mEv_MonthDay_u end_date;
|
||||
s16 status;
|
||||
u16 pad;
|
||||
} mEv_event_today_c;
|
||||
|
||||
typedef struct event_date_s {
|
||||
u8 month;
|
||||
u8 day;
|
||||
u8 _2;
|
||||
u8 hour;
|
||||
u8 month;
|
||||
u8 day;
|
||||
u8 _2;
|
||||
u8 hour;
|
||||
} mEv_schedule_date_c;
|
||||
|
||||
typedef union {
|
||||
mEv_schedule_date_c d;
|
||||
u16 md, _h;
|
||||
u32 raw;
|
||||
mEv_schedule_date_c d;
|
||||
u16 md, _h;
|
||||
u32 raw;
|
||||
} mEv_schedule_date_u;
|
||||
|
||||
typedef struct event_schedule_s {
|
||||
mEv_schedule_date_u date[2]; /* 0 = begin, 1 = end */
|
||||
s16 _8;
|
||||
s16 type; /* event type */
|
||||
mEv_schedule_date_u date[2]; /* 0 = begin, 1 = end */
|
||||
s16 _8;
|
||||
s16 type; /* event type */
|
||||
} mEv_schedule_c;
|
||||
|
||||
#define mEv_EVENT_HOUR_START_EVENT (1 << 28)
|
||||
@@ -93,7 +95,7 @@ typedef struct event_schedule_s {
|
||||
/**
|
||||
* Event type definition
|
||||
* xxxyyyyy yyyyyyyy yyyyyyyy yyyyyyyy
|
||||
*
|
||||
*
|
||||
* x: event type (e.g. special event, 'first job' (chores) event, holidays, ...) (0-7)
|
||||
* y: sub-type (specific event)
|
||||
**/
|
||||
@@ -111,460 +113,460 @@ typedef struct event_schedule_s {
|
||||
#define mEv_SET(type, subtype) (mEv_SET_TYPE(type) | mEv_SET_TYPE(subtype))
|
||||
|
||||
enum event_type {
|
||||
mEv_SPNPC_EVENT, /* special NPC events */
|
||||
mEv_SAVED_EVENT, /* events saved to data */
|
||||
mEv_TYPE2_EVENT, /* unused? */
|
||||
mEv_TYPE3_EVENT, /* unused? */
|
||||
mEv_TYPE4_EVENT, /* unused? */
|
||||
mEv_DAILY_EVENT, /* checked daily always? aSL_ReportShopOpen2Event has event 3 */
|
||||
mEv_SPECL_EVENT, /* ??? secondary special npc event data? */
|
||||
mEv_SPNPC_EVENT, /* special NPC events */
|
||||
mEv_SAVED_EVENT, /* events saved to data */
|
||||
mEv_TYPE2_EVENT, /* unused? */
|
||||
mEv_TYPE3_EVENT, /* unused? */
|
||||
mEv_TYPE4_EVENT, /* unused? */
|
||||
mEv_DAILY_EVENT, /* checked daily always? aSL_ReportShopOpen2Event has event 3 */
|
||||
mEv_SPECL_EVENT, /* ??? secondary special npc event data? */
|
||||
|
||||
mEv_EVENT_TYPE_NUM
|
||||
mEv_EVENT_TYPE_NUM
|
||||
};
|
||||
|
||||
enum events {
|
||||
mEv_SPNPC_SHOP = (int)mEv_SET(mEv_SPNPC_EVENT, 0),
|
||||
mEv_SPNPC_DESIGNER,
|
||||
mEv_SPNPC_BROKER,
|
||||
mEv_SPNPC_ARTIST,
|
||||
mEv_SPNPC_ARABIAN,
|
||||
mEv_SPNPC_GYPSY,
|
||||
mEv_SPNPC_END,
|
||||
mEv_SPNPC_SHOP = (int)mEv_SET(mEv_SPNPC_EVENT, 0),
|
||||
mEv_SPNPC_DESIGNER,
|
||||
mEv_SPNPC_BROKER,
|
||||
mEv_SPNPC_ARTIST,
|
||||
mEv_SPNPC_ARABIAN,
|
||||
mEv_SPNPC_GYPSY,
|
||||
mEv_SPNPC_END,
|
||||
|
||||
mEv_SAVED_RENEWSHOP = (int)mEv_SET(mEv_SAVED_EVENT, 0), /* renew shop */
|
||||
mEv_SAVED_UNK1, /* unused */
|
||||
|
||||
/* intro through chores */
|
||||
mEv_SAVED_FIRSTJOB_PLR0,
|
||||
mEv_SAVED_FIRSTJOB_PLR1,
|
||||
mEv_SAVED_FIRSTJOB_PLR2,
|
||||
mEv_SAVED_FIRSTJOB_PLR3,
|
||||
mEv_SAVED_RENEWSHOP = (int)mEv_SET(mEv_SAVED_EVENT, 0), /* renew shop */
|
||||
mEv_SAVED_UNK1, /* unused */
|
||||
|
||||
/* selecting house */
|
||||
mEv_SAVED_FIRSTINTRO_PLR0,
|
||||
mEv_SAVED_FIRSTINTRO_PLR1,
|
||||
mEv_SAVED_FIRSTINTRO_PLR2,
|
||||
mEv_SAVED_FIRSTINTRO_PLR3,
|
||||
/* intro through chores */
|
||||
mEv_SAVED_FIRSTJOB_PLR0,
|
||||
mEv_SAVED_FIRSTJOB_PLR1,
|
||||
mEv_SAVED_FIRSTJOB_PLR2,
|
||||
mEv_SAVED_FIRSTJOB_PLR3,
|
||||
|
||||
/* wait for next day to talk about HRA */
|
||||
mEv_SAVED_HRAWAIT_PLR0,
|
||||
mEv_SAVED_HRAWAIT_PLR1,
|
||||
mEv_SAVED_HRAWAIT_PLR2,
|
||||
mEv_SAVED_HRAWAIT_PLR3,
|
||||
/* selecting house */
|
||||
mEv_SAVED_FIRSTINTRO_PLR0,
|
||||
mEv_SAVED_FIRSTINTRO_PLR1,
|
||||
mEv_SAVED_FIRSTINTRO_PLR2,
|
||||
mEv_SAVED_FIRSTINTRO_PLR3,
|
||||
|
||||
/* Nook will talk about HRA when entering the shop */
|
||||
mEv_SAVED_HRATALK_PLR0,
|
||||
mEv_SAVED_HRATALK_PLR1,
|
||||
mEv_SAVED_HRATALK_PLR2,
|
||||
mEv_SAVED_HRATALK_PLR3,
|
||||
/* wait for next day to talk about HRA */
|
||||
mEv_SAVED_HRAWAIT_PLR0,
|
||||
mEv_SAVED_HRAWAIT_PLR1,
|
||||
mEv_SAVED_HRAWAIT_PLR2,
|
||||
mEv_SAVED_HRAWAIT_PLR3,
|
||||
|
||||
/* Do a 'favor' for a villager during chores */
|
||||
mEv_SAVED_FJOPENQUEST_PLR0,
|
||||
mEv_SAVED_FJOPENQUEST_PLR1,
|
||||
mEv_SAVED_FJOPENQUEST_PLR2,
|
||||
mEv_SAVED_FJOPENQUEST_PLR3,
|
||||
/* Nook will talk about HRA when entering the shop */
|
||||
mEv_SAVED_HRATALK_PLR0,
|
||||
mEv_SAVED_HRATALK_PLR1,
|
||||
mEv_SAVED_HRATALK_PLR2,
|
||||
mEv_SAVED_HRATALK_PLR3,
|
||||
|
||||
/* Player going to another town, set at train station */
|
||||
mEv_SAVED_GATEWAY_PLR0,
|
||||
mEv_SAVED_GATEWAY_PLR1,
|
||||
mEv_SAVED_GATEWAY_PLR2,
|
||||
mEv_SAVED_GATEWAY_PLR3,
|
||||
mEv_SAVED_GATEWAY_FRGN, /* Foreigner */
|
||||
/* Do a 'favor' for a villager during chores */
|
||||
mEv_SAVED_FJOPENQUEST_PLR0,
|
||||
mEv_SAVED_FJOPENQUEST_PLR1,
|
||||
mEv_SAVED_FJOPENQUEST_PLR2,
|
||||
mEv_SAVED_FJOPENQUEST_PLR3,
|
||||
|
||||
mEv_DAILY_0 = (int)mEv_SET(mEv_DAILY_EVENT, 0), /* unused */
|
||||
mEv_DAILY_1, /* unused */
|
||||
mEv_DAILY_2, /* unused */
|
||||
mEv_DAILY_OPEN_SHOP, /* shop opened */
|
||||
/* Player going to another town, set at train station */
|
||||
mEv_SAVED_GATEWAY_PLR0,
|
||||
mEv_SAVED_GATEWAY_PLR1,
|
||||
mEv_SAVED_GATEWAY_PLR2,
|
||||
mEv_SAVED_GATEWAY_PLR3,
|
||||
mEv_SAVED_GATEWAY_FRGN, /* Foreigner */
|
||||
|
||||
mEv_SPECL_DESIGNER_COMPLETE = (int)mEv_SET(mEv_SPECL_EVENT, 0)
|
||||
mEv_DAILY_0 = (int)mEv_SET(mEv_DAILY_EVENT, 0), /* unused */
|
||||
mEv_DAILY_1, /* unused */
|
||||
mEv_DAILY_2, /* unused */
|
||||
mEv_DAILY_OPEN_SHOP, /* shop opened */
|
||||
|
||||
mEv_SPECL_DESIGNER_COMPLETE = (int)mEv_SET(mEv_SPECL_EVENT, 0)
|
||||
};
|
||||
|
||||
enum week_type {
|
||||
mEv_WEEKTYPE_NONE,
|
||||
mEv_WEEKTYPE_1ST,
|
||||
mEv_WEEKTYPE_2ND,
|
||||
mEv_WEEKTYPE_3RD,
|
||||
mEv_WEEKTYPE_4TH,
|
||||
mEv_WEEKTYPE_5TH,
|
||||
mEv_WEEKTYPE_LAST,
|
||||
mEv_WEEKTYPE_SPECIAL
|
||||
mEv_WEEKTYPE_NONE,
|
||||
mEv_WEEKTYPE_1ST,
|
||||
mEv_WEEKTYPE_2ND,
|
||||
mEv_WEEKTYPE_3RD,
|
||||
mEv_WEEKTYPE_4TH,
|
||||
mEv_WEEKTYPE_5TH,
|
||||
mEv_WEEKTYPE_LAST,
|
||||
mEv_WEEKTYPE_SPECIAL
|
||||
};
|
||||
|
||||
enum event_table {
|
||||
mEv_EVENT_RUMOR_NEW_YEARS_DAY,
|
||||
mEv_EVENT_NEW_YEARS_DAY,
|
||||
mEv_EVENT_RUMOR_KAMAKURA,
|
||||
mEv_EVENT_KAMAKURA,
|
||||
mEv_EVENT_SONCHO_VACATION_JANUARY,
|
||||
mEv_EVENT_SONCHO_VACATION_FEBRUARY,
|
||||
mEv_EVENT_RUMOR_GROUNDHOG_DAY,
|
||||
mEv_EVENT_GROUNDHOG_DAY,
|
||||
mEv_EVENT_RUMOR_VALENTINES_DAY,
|
||||
mEv_EVENT_VALENTINES_DAY,
|
||||
mEv_EVENT_RUMOR_SPRING_SPORTS_FAIR,
|
||||
mEv_EVENT_SPRING_EQUINOX,
|
||||
mEv_EVENT_SPORTS_FAIR_BALL_TOSS,
|
||||
mEv_EVENT_SPORTS_FAIR_AEROBICS,
|
||||
mEv_EVENT_SPORTS_FAIR_TUG_OF_WAR,
|
||||
mEv_EVENT_SPORTS_FAIR_FOOT_RACE,
|
||||
mEv_EVENT_SPORTS_FAIR,
|
||||
mEv_EVENT_APRILFOOLS_DAY,
|
||||
mEv_EVENT_RUMOR_APRILFOOLS_DAY,
|
||||
mEv_EVENT_RUMOR_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_NATURE_DAY,
|
||||
mEv_EVENT_SPRING_CLEANING,
|
||||
mEv_EVENT_MOTHERS_DAY,
|
||||
mEv_EVENT_SUMMER_CAMPER,
|
||||
mEv_EVENT_GRADUATION_DAY,
|
||||
mEv_EVENT_FATHERS_DAY,
|
||||
mEv_EVENT_RUMOR_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_TALK_FISHING_TOURNEY_1, // for dialog?
|
||||
mEv_EVENT_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_TOWN_DAY,
|
||||
mEv_EVENT_RUMOR_FIREWORKS_SHOW,
|
||||
mEv_EVENT_FIREWORKS_SHOW,
|
||||
mEv_EVENT_RUMOR_MORNING_AEROBICS,
|
||||
mEv_EVENT_TALK_MORNING_AEROBICS,
|
||||
mEv_EVENT_MORNING_AEROBICS,
|
||||
mEv_EVENT_RUMOR_METEOR_SHOWER,
|
||||
mEv_EVENT_METEOR_SHOWER,
|
||||
mEv_EVENT_FOUNDERS_DAY,
|
||||
mEv_EVENT_LABOR_DAY,
|
||||
mEv_EVENT_RUMOR_FALL_SPORTS_FAIR,
|
||||
mEv_EVENT_AUTUMN_EQUINOX,
|
||||
mEv_EVENT_RUMOR_HARVEST_MOON_DAY,
|
||||
mEv_EVENT_HARVEST_MOON_FESTIVAL,
|
||||
mEv_EVENT_EXPLORERS_DAY,
|
||||
mEv_EVENT_RUMOR_MUSHROOM_SEASON,
|
||||
mEv_EVENT_TALK_MUSHROOM_SEASON,
|
||||
mEv_EVENT_MUSHROOM_SEASON,
|
||||
mEv_EVENT_RUMOR_HALLOWEEN,
|
||||
mEv_EVENT_HALLOWEEN,
|
||||
mEv_EVENT_MAYORS_DAY,
|
||||
mEv_EVENT_OFFICERS_DAY,
|
||||
mEv_EVENT_RUMOR_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_TALK_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_RUMOR_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_SALE_DAY,
|
||||
mEv_EVENT_SNOW_DAY,
|
||||
mEv_EVENT_TOY_DAY_SONCHO,
|
||||
mEv_EVENT_RUMOR_TOY_DAY,
|
||||
mEv_EVENT_TOY_DAY_JINGLE,
|
||||
mEv_EVENT_SNOWMAN_SEASON,
|
||||
mEv_EVENT_RUMOR_NEW_YEARS_EVE_COUNTDOWN,
|
||||
mEv_EVENT_NEW_YEARS_EVE_COUNTDOWN,
|
||||
mEv_EVENT_CHERRY_BLOSSOM_PETALS,
|
||||
mEv_EVENT_TALK_TOY_DAY,
|
||||
|
||||
mEv_EVENT_PLAYER_BIRTHDAY,
|
||||
|
||||
mEv_EVENT_DOZAEMON,
|
||||
mEv_EVENT_KABU_PEDDLER,
|
||||
mEv_EVENT_LOTTERY,
|
||||
mEv_EVENT_KK_SLIDER,
|
||||
|
||||
mEv_EVENT_HANDBILL_BROKER,
|
||||
mEv_EVENT_HANDBILL_SHOP_SALE,
|
||||
|
||||
mEv_EVENT_ARTIST,
|
||||
mEv_EVENT_BROKER_SALE,
|
||||
mEv_EVENT_DESIGNER,
|
||||
mEv_EVENT_GYPSY,
|
||||
mEv_EVENT_SHOP_SALE,
|
||||
mEv_EVENT_CARPET_PEDDLER,
|
||||
mEv_EVENT_RUMOR_NEW_YEARS_DAY,
|
||||
mEv_EVENT_NEW_YEARS_DAY,
|
||||
mEv_EVENT_RUMOR_KAMAKURA,
|
||||
mEv_EVENT_KAMAKURA,
|
||||
mEv_EVENT_SONCHO_VACATION_JANUARY,
|
||||
mEv_EVENT_SONCHO_VACATION_FEBRUARY,
|
||||
mEv_EVENT_RUMOR_GROUNDHOG_DAY,
|
||||
mEv_EVENT_GROUNDHOG_DAY,
|
||||
mEv_EVENT_RUMOR_VALENTINES_DAY,
|
||||
mEv_EVENT_VALENTINES_DAY,
|
||||
mEv_EVENT_RUMOR_SPRING_SPORTS_FAIR,
|
||||
mEv_EVENT_SPRING_EQUINOX,
|
||||
mEv_EVENT_SPORTS_FAIR_BALL_TOSS,
|
||||
mEv_EVENT_SPORTS_FAIR_AEROBICS,
|
||||
mEv_EVENT_SPORTS_FAIR_TUG_OF_WAR,
|
||||
mEv_EVENT_SPORTS_FAIR_FOOT_RACE,
|
||||
mEv_EVENT_SPORTS_FAIR,
|
||||
mEv_EVENT_APRILFOOLS_DAY,
|
||||
mEv_EVENT_RUMOR_APRILFOOLS_DAY,
|
||||
mEv_EVENT_RUMOR_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_NATURE_DAY,
|
||||
mEv_EVENT_SPRING_CLEANING,
|
||||
mEv_EVENT_MOTHERS_DAY,
|
||||
mEv_EVENT_SUMMER_CAMPER,
|
||||
mEv_EVENT_GRADUATION_DAY,
|
||||
mEv_EVENT_FATHERS_DAY,
|
||||
mEv_EVENT_RUMOR_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_TALK_FISHING_TOURNEY_1, // for dialog?
|
||||
mEv_EVENT_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_TOWN_DAY,
|
||||
mEv_EVENT_RUMOR_FIREWORKS_SHOW,
|
||||
mEv_EVENT_FIREWORKS_SHOW,
|
||||
mEv_EVENT_RUMOR_MORNING_AEROBICS,
|
||||
mEv_EVENT_TALK_MORNING_AEROBICS,
|
||||
mEv_EVENT_MORNING_AEROBICS,
|
||||
mEv_EVENT_RUMOR_METEOR_SHOWER,
|
||||
mEv_EVENT_METEOR_SHOWER,
|
||||
mEv_EVENT_FOUNDERS_DAY,
|
||||
mEv_EVENT_LABOR_DAY,
|
||||
mEv_EVENT_RUMOR_FALL_SPORTS_FAIR,
|
||||
mEv_EVENT_AUTUMN_EQUINOX,
|
||||
mEv_EVENT_RUMOR_HARVEST_MOON_DAY,
|
||||
mEv_EVENT_HARVEST_MOON_FESTIVAL,
|
||||
mEv_EVENT_EXPLORERS_DAY,
|
||||
mEv_EVENT_RUMOR_MUSHROOM_SEASON,
|
||||
mEv_EVENT_TALK_MUSHROOM_SEASON,
|
||||
mEv_EVENT_MUSHROOM_SEASON,
|
||||
mEv_EVENT_RUMOR_HALLOWEEN,
|
||||
mEv_EVENT_HALLOWEEN,
|
||||
mEv_EVENT_MAYORS_DAY,
|
||||
mEv_EVENT_OFFICERS_DAY,
|
||||
mEv_EVENT_RUMOR_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_TALK_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_RUMOR_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_SALE_DAY,
|
||||
mEv_EVENT_SNOW_DAY,
|
||||
mEv_EVENT_TOY_DAY_SONCHO,
|
||||
mEv_EVENT_RUMOR_TOY_DAY,
|
||||
mEv_EVENT_TOY_DAY_JINGLE,
|
||||
mEv_EVENT_SNOWMAN_SEASON,
|
||||
mEv_EVENT_RUMOR_NEW_YEARS_EVE_COUNTDOWN,
|
||||
mEv_EVENT_NEW_YEARS_EVE_COUNTDOWN,
|
||||
mEv_EVENT_CHERRY_BLOSSOM_PETALS,
|
||||
mEv_EVENT_TALK_TOY_DAY,
|
||||
|
||||
mEv_EVENT_SONCHO_NEW_YEARS_DAY,
|
||||
mEv_EVENT_SONCHO_GROUNDHOG_DAY,
|
||||
mEv_EVENT_SONCHO_SPRING_SPORTS_FAIR,
|
||||
mEv_EVENT_SONCHO_APRILFOOLS_DAY,
|
||||
mEv_EVENT_SONCHO_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_NATURE_DAY,
|
||||
mEv_EVENT_SONCHO_SPRING_CLEANING,
|
||||
mEv_EVENT_SONCHO_MOTHERS_DAY,
|
||||
mEv_EVENT_SONCHO_GRADUATION_DAY,
|
||||
mEv_EVENT_SONCHO_FATHERS_DAY,
|
||||
mEv_EVENT_SONCHO_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_SONCHO_TOWN_DAY,
|
||||
mEv_EVENT_SONCHO_FIREWORKS_SHOW,
|
||||
mEv_EVENT_SONCHO_METEOR_SHOWER,
|
||||
mEv_EVENT_SONCHO_FOUNDERS_DAY,
|
||||
mEv_EVENT_SONCHO_LABOR_DAY,
|
||||
mEv_EVENT_SONCHO_FALL_SPORTS_FAIR,
|
||||
mEv_EVENT_SONCHO_HARVEST_MOON_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_EXPLORERS_DAY,
|
||||
mEv_EVENT_SONCHO_HALLOWEEN,
|
||||
mEv_EVENT_SONCHO_MAYORS_DAY,
|
||||
mEv_EVENT_SONCHO_OFFICERS_DAY,
|
||||
mEv_EVENT_SONCHO_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_SONCHO_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_SALE_DAY,
|
||||
mEv_EVENT_SONCHO_SNOW_DAY,
|
||||
mEv_EVENT_SONCHO_TOY_DAY,
|
||||
mEv_EVENT_PLAYER_BIRTHDAY,
|
||||
|
||||
mEv_EVENT_TALK_NEW_YEARS_COUNTDOWN,
|
||||
mEv_EVENT_HARVEST_FESTIVAL_FRANKLIN,
|
||||
mEv_EVENT_DOZAEMON,
|
||||
mEv_EVENT_KABU_PEDDLER,
|
||||
mEv_EVENT_LOTTERY,
|
||||
mEv_EVENT_KK_SLIDER,
|
||||
|
||||
mEv_EVENT_WEATHER_CLEAR,
|
||||
mEv_EVENT_WEATHER_SNOW,
|
||||
mEv_EVENT_WEATHER_SPORTS_FAIR,
|
||||
mEv_EVENT_HANDBILL_BROKER,
|
||||
mEv_EVENT_HANDBILL_SHOP_SALE,
|
||||
|
||||
mEv_EVENT_BRIDGE_MAKE,
|
||||
mEv_EVENT_SONCHO_BRIDGE_MAKE,
|
||||
mEv_EVENT_ARTIST,
|
||||
mEv_EVENT_BROKER_SALE,
|
||||
mEv_EVENT_DESIGNER,
|
||||
mEv_EVENT_GYPSY,
|
||||
mEv_EVENT_SHOP_SALE,
|
||||
mEv_EVENT_CARPET_PEDDLER,
|
||||
|
||||
mEv_EVENT_GHOST,
|
||||
mEv_EVENT_MASK_NPC, // "Go Home Npc" & "Blanca" events
|
||||
mEv_EVENT_SONCHO_NEW_YEARS_DAY,
|
||||
mEv_EVENT_SONCHO_GROUNDHOG_DAY,
|
||||
mEv_EVENT_SONCHO_SPRING_SPORTS_FAIR,
|
||||
mEv_EVENT_SONCHO_APRILFOOLS_DAY,
|
||||
mEv_EVENT_SONCHO_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_NATURE_DAY,
|
||||
mEv_EVENT_SONCHO_SPRING_CLEANING,
|
||||
mEv_EVENT_SONCHO_MOTHERS_DAY,
|
||||
mEv_EVENT_SONCHO_GRADUATION_DAY,
|
||||
mEv_EVENT_SONCHO_FATHERS_DAY,
|
||||
mEv_EVENT_SONCHO_FISHING_TOURNEY_1,
|
||||
mEv_EVENT_SONCHO_TOWN_DAY,
|
||||
mEv_EVENT_SONCHO_FIREWORKS_SHOW,
|
||||
mEv_EVENT_SONCHO_METEOR_SHOWER,
|
||||
mEv_EVENT_SONCHO_FOUNDERS_DAY,
|
||||
mEv_EVENT_SONCHO_LABOR_DAY,
|
||||
mEv_EVENT_SONCHO_FALL_SPORTS_FAIR,
|
||||
mEv_EVENT_SONCHO_HARVEST_MOON_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_EXPLORERS_DAY,
|
||||
mEv_EVENT_SONCHO_HALLOWEEN,
|
||||
mEv_EVENT_SONCHO_MAYORS_DAY,
|
||||
mEv_EVENT_SONCHO_OFFICERS_DAY,
|
||||
mEv_EVENT_SONCHO_FISHING_TOURNEY_2,
|
||||
mEv_EVENT_SONCHO_HARVEST_FESTIVAL,
|
||||
mEv_EVENT_SONCHO_SALE_DAY,
|
||||
mEv_EVENT_SONCHO_SNOW_DAY,
|
||||
mEv_EVENT_SONCHO_TOY_DAY,
|
||||
|
||||
mEv_EVENT_74, // unused?
|
||||
mEv_EVENT_TALK_NEW_YEARS_COUNTDOWN,
|
||||
mEv_EVENT_HARVEST_FESTIVAL_FRANKLIN,
|
||||
|
||||
mEv_EVENT_KOINOBORI,
|
||||
mEv_EVENT_WEATHER_CLEAR,
|
||||
mEv_EVENT_WEATHER_SNOW,
|
||||
mEv_EVENT_WEATHER_SPORTS_FAIR,
|
||||
|
||||
mEv_EVENT_76, // unused?
|
||||
mEv_EVENT_BRIDGE_MAKE,
|
||||
mEv_EVENT_SONCHO_BRIDGE_MAKE,
|
||||
|
||||
mEv_EVENT_NUM
|
||||
mEv_EVENT_GHOST,
|
||||
mEv_EVENT_MASK_NPC, // "Go Home Npc" & "Blanca" events
|
||||
|
||||
mEv_EVENT_74, // unused?
|
||||
|
||||
mEv_EVENT_KOINOBORI,
|
||||
|
||||
mEv_EVENT_76, // unused?
|
||||
|
||||
mEv_EVENT_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mEv_SAVE_DATE_TODAY,
|
||||
mEv_SAVE_DATE_LAST_PLAY_DATE,
|
||||
mEv_SAVE_DATE_BIRTHDAY,
|
||||
mEv_SAVE_DATE_SPECIAL0, /* Initialized to rtc month-day in init_special_event */
|
||||
mEv_SAVE_DATE_SPECIAL1, /* Initialized to beginning month-day of special event in init_special_event */
|
||||
mEv_SAVE_DATE_SPECIAL2, /* Initialized to ending month-day of special event in init_special_event */
|
||||
mEv_SAVE_DATE_WEEKLY,
|
||||
mEv_SAVE_DATE_SPECIAL3, /* Initialized to opening hours for shop sale in init_special_event */
|
||||
mEv_SAVE_DATE_TODAY,
|
||||
mEv_SAVE_DATE_LAST_PLAY_DATE,
|
||||
mEv_SAVE_DATE_BIRTHDAY,
|
||||
mEv_SAVE_DATE_SPECIAL0, /* Initialized to rtc month-day in init_special_event */
|
||||
mEv_SAVE_DATE_SPECIAL1, /* Initialized to beginning month-day of special event in init_special_event */
|
||||
mEv_SAVE_DATE_SPECIAL2, /* Initialized to ending month-day of special event in init_special_event */
|
||||
mEv_SAVE_DATE_WEEKLY,
|
||||
mEv_SAVE_DATE_SPECIAL3, /* Initialized to opening hours for shop sale in init_special_event */
|
||||
|
||||
mEv_SAVE_DATE_NUM
|
||||
mEv_SAVE_DATE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mEv_SPECIAL_STATE_UNSCHEDULED,
|
||||
mEv_SPECIAL_STATE_SCHEDULED_LATER,
|
||||
mEv_SPECIAL_STATE_SCHEDULED_TODAY,
|
||||
mEv_SPECIAL_STATE_ACTIVE,
|
||||
|
||||
mEv_SPECIAL_STATE_NUM
|
||||
mEv_SPECIAL_STATE_UNSCHEDULED,
|
||||
mEv_SPECIAL_STATE_SCHEDULED_LATER,
|
||||
mEv_SPECIAL_STATE_SCHEDULED_TODAY,
|
||||
mEv_SPECIAL_STATE_ACTIVE,
|
||||
|
||||
mEv_SPECIAL_STATE_NUM
|
||||
};
|
||||
|
||||
#define mEv_STATUS_ACTIVE (1 << 0) /* event is active */
|
||||
#define mEv_STATUS_STOP (1 << 1) /* event is stopped */
|
||||
#define mEv_STATUS_SHOW (1 << 2) /* event is shown */
|
||||
#define mEv_STATUS_PLAYSOUND (1 << 3) /* event should play sound */
|
||||
#define mEv_STATUS_RUN (1 << 4) /* event should run */
|
||||
#define mEv_STATUS_ERROR (1 << 5) /* event is in error state */
|
||||
#define mEv_STATUS_TALK (1 << 6) /* event requires talking to player */
|
||||
#define mEv_STATUS_EXIST (1 << 7) /* event is scheduled */
|
||||
#define mEv_STATUS_ACTIVE (1 << 0) /* event is active */
|
||||
#define mEv_STATUS_STOP (1 << 1) /* event is stopped */
|
||||
#define mEv_STATUS_SHOW (1 << 2) /* event is shown */
|
||||
#define mEv_STATUS_PLAYSOUND (1 << 3) /* event should play sound */
|
||||
#define mEv_STATUS_RUN (1 << 4) /* event should run */
|
||||
#define mEv_STATUS_ERROR (1 << 5) /* event is in error state */
|
||||
#define mEv_STATUS_TALK (1 << 6) /* event requires talking to player */
|
||||
#define mEv_STATUS_EXIST (1 << 7) /* event is scheduled */
|
||||
|
||||
#define mEv_GHOST_HITODAMA_NUM 5
|
||||
typedef struct ghost_spirit_block_data_s {
|
||||
u8 block_x[mEv_GHOST_HITODAMA_NUM];
|
||||
u8 block_z[mEv_GHOST_HITODAMA_NUM];
|
||||
u8 block_x[mEv_GHOST_HITODAMA_NUM];
|
||||
u8 block_z[mEv_GHOST_HITODAMA_NUM];
|
||||
} mEv_gst_hitodama_block_c;
|
||||
|
||||
#define mEv_GHOST_FLAG_ACTIVE 0x4000 // TODO: do these live in the ghost actor itself?
|
||||
#define mEv_GHOST_FLAG_RETURNED_SPIRITS 0x8000
|
||||
typedef struct ghost_common_s {
|
||||
mEv_gst_hitodama_block_c hitodama_block_data;
|
||||
u16 flags;
|
||||
u8 _0C[0x2C - 0x0C];
|
||||
mEv_gst_hitodama_block_c hitodama_block_data;
|
||||
u16 flags;
|
||||
u8 _0C[0x2C - 0x0C];
|
||||
} mEv_gst_common_c;
|
||||
|
||||
typedef struct ghost_event_s {
|
||||
u16 okoruhito_str_no;
|
||||
u16 flags;
|
||||
lbRTC_ymd_c renew_time;
|
||||
u16 okoruhito_str_no;
|
||||
u16 flags;
|
||||
lbRTC_ymd_c renew_time;
|
||||
} mEv_gst_c;
|
||||
|
||||
#define mEv_DESGINER_NUM 3
|
||||
|
||||
typedef struct designer_common_s {
|
||||
int button_presses;
|
||||
int _04;
|
||||
int button_presses;
|
||||
int _04;
|
||||
} mEv_dsg_common_c;
|
||||
|
||||
typedef struct kabu_peddler_event_s {
|
||||
PersonalID_c spoken_pids[TOTAL_PLAYER_NUM];
|
||||
PersonalID_c spoken_pids[TOTAL_PLAYER_NUM];
|
||||
} mEv_kabu_peddler_c;
|
||||
|
||||
typedef struct dozaemon_event_s {
|
||||
u16 flags;
|
||||
u16 flags;
|
||||
} mEv_dozaemon_c;
|
||||
|
||||
typedef union {
|
||||
mEv_kabu_peddler_c kabu_peddler;
|
||||
mEv_dozaemon_c dozaemon;
|
||||
mEv_kabu_peddler_c kabu_peddler;
|
||||
mEv_dozaemon_c dozaemon;
|
||||
} mEv_weekly_u;
|
||||
|
||||
typedef struct bargin_event_s {
|
||||
lbRTC_time_c start_time;
|
||||
lbRTC_time_c end_time;
|
||||
mActor_name_t items[5];
|
||||
int kind;
|
||||
lbRTC_time_c start_time;
|
||||
lbRTC_time_c end_time;
|
||||
mActor_name_t items[5];
|
||||
int kind;
|
||||
} mEv_bargin_c;
|
||||
|
||||
typedef struct designer_event_s {
|
||||
PersonalID_c pids[mEv_DESGINER_NUM];
|
||||
int used;
|
||||
mActor_name_t gifted_cloths[mEv_DESGINER_NUM];
|
||||
PersonalID_c pids[mEv_DESGINER_NUM];
|
||||
int used;
|
||||
mActor_name_t gifted_cloths[mEv_DESGINER_NUM];
|
||||
} mEv_designer_c;
|
||||
|
||||
typedef struct broker_event_s {
|
||||
PersonalID_c pid[2];
|
||||
lbRTC_time_c end_time;
|
||||
int used;
|
||||
mActor_name_t sold_items[2];
|
||||
mActor_name_t items[3];
|
||||
PersonalID_c pid[2];
|
||||
lbRTC_time_c end_time;
|
||||
int used;
|
||||
mActor_name_t sold_items[2];
|
||||
mActor_name_t items[3];
|
||||
} mEv_broker_c;
|
||||
|
||||
typedef struct artist_event_s {
|
||||
PersonalID_c pids[2];
|
||||
int used;
|
||||
mActor_name_t walls[2];
|
||||
PersonalID_c pids[2];
|
||||
int used;
|
||||
mActor_name_t walls[2];
|
||||
} mEv_artist_c;
|
||||
|
||||
typedef struct arabian_event_s {
|
||||
int used;
|
||||
mActor_name_t carpet;
|
||||
int used;
|
||||
mActor_name_t carpet;
|
||||
} mEv_arabian_c;
|
||||
|
||||
typedef struct gypsy_event_s {
|
||||
int _00;
|
||||
int block_z;
|
||||
int block_x;
|
||||
int ut_z;
|
||||
int ut_x;
|
||||
int _00;
|
||||
int block_z;
|
||||
int block_x;
|
||||
int ut_z;
|
||||
int ut_x;
|
||||
} mEv_gypsy_c;
|
||||
|
||||
typedef union {
|
||||
mEv_bargin_c bargin;
|
||||
mEv_designer_c designer;
|
||||
mEv_broker_c broker;
|
||||
mEv_artist_c artist;
|
||||
mEv_arabian_c arabian;
|
||||
mEv_gypsy_c gypsy;
|
||||
mEv_bargin_c bargin;
|
||||
mEv_designer_c designer;
|
||||
mEv_broker_c broker;
|
||||
mEv_artist_c artist;
|
||||
mEv_arabian_c arabian;
|
||||
mEv_gypsy_c gypsy;
|
||||
} mEv_special_u;
|
||||
|
||||
typedef struct special_event_s {
|
||||
lbRTC_time_c scheduled;
|
||||
u32 type;
|
||||
mEv_special_u event;
|
||||
lbRTC_time_c scheduled;
|
||||
u32 type;
|
||||
mEv_special_u event;
|
||||
} mEv_special_c;
|
||||
|
||||
typedef struct save_event_data_s {
|
||||
mEv_special_c special;
|
||||
mEv_weekly_u weekly;
|
||||
u32 flags;
|
||||
mEv_special_c special;
|
||||
mEv_weekly_u weekly;
|
||||
u32 flags;
|
||||
} mEv_event_save_c;
|
||||
|
||||
typedef struct broker_event_common_s {
|
||||
PersonalID_c entered_pid;
|
||||
int hide_npc;
|
||||
PersonalID_c entered_pid;
|
||||
int hide_npc;
|
||||
} mEv_broker_common_c;
|
||||
|
||||
typedef struct santa_event_common_s {
|
||||
u8 present;
|
||||
u8 talk_counter;
|
||||
s8 bx;
|
||||
s8 bz;
|
||||
mActor_name_t last_talk_cloth;
|
||||
u8 present;
|
||||
u8 talk_counter;
|
||||
s8 bx;
|
||||
s8 bz;
|
||||
mActor_name_t last_talk_cloth;
|
||||
} mEv_santa_event_common_c;
|
||||
|
||||
#define mEv_SANTA_CLOTH_NUM_MAX 10 /* How many different shirts can the player trick Jingle with */
|
||||
|
||||
typedef struct santa_event_s {
|
||||
PersonalID_c pid;
|
||||
u8 present_count;
|
||||
mActor_name_t cloth[mEv_SANTA_CLOTH_NUM_MAX];
|
||||
PersonalID_c pid;
|
||||
u8 present_count;
|
||||
mActor_name_t cloth[mEv_SANTA_CLOTH_NUM_MAX];
|
||||
} mEv_santa_event_c;
|
||||
|
||||
typedef union {
|
||||
mEv_broker_common_c broker;
|
||||
mEv_santa_event_common_c santa;
|
||||
mEv_broker_common_c broker;
|
||||
mEv_santa_event_common_c santa;
|
||||
} mEv_event_common_u;
|
||||
|
||||
typedef struct event_s {
|
||||
u8 day;
|
||||
u8 hour;
|
||||
u8 _02;
|
||||
u8 state;
|
||||
u8 month;
|
||||
u8 year;
|
||||
s16 changed_num;
|
||||
int block_z;
|
||||
int block_x;
|
||||
int unused[5];
|
||||
u8 day;
|
||||
u8 hour;
|
||||
u8 _02;
|
||||
u8 state;
|
||||
u8 month;
|
||||
u8 year;
|
||||
s16 changed_num;
|
||||
int block_z;
|
||||
int block_x;
|
||||
int unused[5];
|
||||
} Event_c;
|
||||
|
||||
typedef struct event_info_s {
|
||||
u8 type;
|
||||
u8 id;
|
||||
u16 year;
|
||||
mEv_MonthDay_u start_date;
|
||||
mEv_MonthDay_u end_date;
|
||||
u8 type;
|
||||
u8 id;
|
||||
u16 year;
|
||||
mEv_MonthDay_u start_date;
|
||||
mEv_MonthDay_u end_date;
|
||||
} mEv_info_c;
|
||||
|
||||
typedef struct event_place_data_s {
|
||||
BlockOrUnit_c block;
|
||||
BlockOrUnit_c unit;
|
||||
mActor_name_t actor_name;
|
||||
s16 flag;
|
||||
BlockOrUnit_c block;
|
||||
BlockOrUnit_c unit;
|
||||
mActor_name_t actor_name;
|
||||
s16 flag;
|
||||
} mEv_place_data_c;
|
||||
|
||||
typedef struct event_place_s {
|
||||
mEv_info_c info;
|
||||
mEv_place_data_c data;
|
||||
mEv_info_c info;
|
||||
mEv_place_data_c data;
|
||||
} mEv_place_c;
|
||||
|
||||
typedef struct event_area_s {
|
||||
mEv_info_c info;
|
||||
int data[11];
|
||||
mEv_info_c info;
|
||||
int data[11];
|
||||
} mEv_area_c;
|
||||
|
||||
#define mEv_AREA_NUM 5
|
||||
#define mEv_PLACE_NUM 10
|
||||
|
||||
typedef struct event_common_s {
|
||||
s16 _00;
|
||||
s16 area_use_bitfield;
|
||||
mEv_area_c area[mEv_AREA_NUM];
|
||||
s16 too_short;
|
||||
s16 place_use_bitfield;
|
||||
mEv_place_c place[mEv_PLACE_NUM];
|
||||
s16 fieldday_event_id;
|
||||
s16 fieldday_event_over_status;
|
||||
u32 unused[2];
|
||||
s16 _00;
|
||||
s16 area_use_bitfield;
|
||||
mEv_area_c area[mEv_AREA_NUM];
|
||||
s16 too_short;
|
||||
s16 place_use_bitfield;
|
||||
mEv_place_c place[mEv_PLACE_NUM];
|
||||
s16 fieldday_event_id;
|
||||
s16 fieldday_event_over_status;
|
||||
u32 unused[2];
|
||||
} mEv_common_data_c;
|
||||
|
||||
typedef struct event_save_event_info_s {
|
||||
u8 type;
|
||||
u8 flags;
|
||||
u8 type;
|
||||
u8 flags;
|
||||
} mEv_event_save_info_c;
|
||||
|
||||
typedef struct event_common_save_data {
|
||||
mEv_event_save_info_c special_event;
|
||||
mEv_event_save_info_c weekly_event;
|
||||
u16 dates[mEv_SAVE_DATE_NUM];
|
||||
int area_use_bitfield;
|
||||
mEv_area_c area[mEv_AREA_NUM];
|
||||
int last_date;
|
||||
int delete_event_id;
|
||||
u32 valentines_day_date;
|
||||
u32 white_day_date; /* unused in AC */
|
||||
u16 ghost_day;
|
||||
u16 bridge_day; // last date suspension bridge event was active
|
||||
union {
|
||||
struct {
|
||||
u8 used_all_locations:1; // set to true when tortimer has cycled through all possible bridge locations?
|
||||
u8 locations_used:7; // index of river acre w/ possible bridge location currently at
|
||||
};
|
||||
mEv_event_save_info_c special_event;
|
||||
mEv_event_save_info_c weekly_event;
|
||||
u16 dates[mEv_SAVE_DATE_NUM];
|
||||
int area_use_bitfield;
|
||||
mEv_area_c area[mEv_AREA_NUM];
|
||||
int last_date;
|
||||
int delete_event_id;
|
||||
u32 valentines_day_date;
|
||||
u32 white_day_date; /* unused in AC */
|
||||
u16 ghost_day;
|
||||
u16 bridge_day; // last date suspension bridge event was active
|
||||
union {
|
||||
struct {
|
||||
u8 used_all_locations : 1; // set to true when tortimer has cycled through all possible bridge locations?
|
||||
u8 locations_used : 7; // index of river acre w/ possible bridge location currently at
|
||||
};
|
||||
|
||||
u8 raw;
|
||||
} bridge_flags;
|
||||
u8 ghost_event_type; // 0x72 will spawn wisp, 0x77 won't?
|
||||
u8 soncho_event_type; // checked not equal to 0xFF for summer & fall fishing tournies
|
||||
u8 dozaemon_completed; // used to signal when you've received an item from gulliver
|
||||
u8 raw;
|
||||
} bridge_flags;
|
||||
u8 ghost_event_type; // 0x72 will spawn wisp, 0x77 won't?
|
||||
u8 soncho_event_type; // checked not equal to 0xFF for summer & fall fishing tournies
|
||||
u8 dozaemon_completed; // used to signal when you've received an item from gulliver
|
||||
} mEv_save_common_data_c;
|
||||
|
||||
extern void mEv_clear_status(int event, s16 status);
|
||||
@@ -606,13 +608,20 @@ extern void mEv_SetTitleDemo(int titledemo_no);
|
||||
|
||||
extern int mGH_check_birth2();
|
||||
extern int mMC_check_birth();
|
||||
extern void mGH_animal_return_init();
|
||||
extern void mMC_mask_cat_init();
|
||||
extern void mEv_init_force(Event_c* event);
|
||||
extern void mEv_SetGateway();
|
||||
extern void mEv_UnSetGateway();
|
||||
extern void mGH_check_delete();
|
||||
extern void mMC_check_delete();
|
||||
extern void mEv_special_event_soldout(int type);
|
||||
|
||||
extern void mEv_debug_print4f(gfxprint_t* gfxprint);
|
||||
extern void mEv_sp_debug_print4f(gfxprint_t* gfxprint);
|
||||
|
||||
#define mEv_IsEventActive(event) mEv_check_status(event, mEv_STATUS_ACTIVE)
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -10,8 +10,10 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
extern int mEvMN_GetJointEventRandomNpc(mActor_name_t* selected_npc_id);
|
||||
extern int mEvNM_CheckJointEvent();
|
||||
extern int mEvNM_CheckJointEvent(u32 id);
|
||||
extern void mEvMN_GetEventNpcName(mActor_name_t* npc_name, int event, int idx, int param_4);
|
||||
extern int mEvMN_GetEventTypeMap(void);
|
||||
extern int mEvMN_GetMapIdx(int event_type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+22
-21
@@ -15,35 +15,36 @@ extern "C" {
|
||||
#define mFRm_NO_ERROR_NO 7
|
||||
|
||||
enum save_error_type {
|
||||
mFRm_ERROR_BAD_RTC, /* RTC returned abnormal value */
|
||||
mFRm_ERROR_MEMCARD_TRAVELDATA_CONFLICT, /* travel data is on the same memory card as requesting to save town data */
|
||||
mFRm_ERROR_DATA_CORRUPTED, /* save data is corrupt */
|
||||
mFRm_ERROR_MEMCARD_NO_FILES, /* memory card is out of "files" */
|
||||
mFRm_ERROR_MEMCARD_DAMAGED, /* memory card is damaged */
|
||||
mFRm_ERROR_MEMCARD_FORMAT, /* memory card requires formatting (corrupt or different region?) */
|
||||
mFRm_ERROR_MEMCARD_INVALID, /* memory card type "cannot be used with Animal Crossing" */
|
||||
mFRm_ERROR_MEMCARD_NO_SPACE, /* memory card has free files, but not enough free space for save */
|
||||
mFRm_ERROR_NOT_MEMCARD, /* device in card slot is not a memory card */
|
||||
mFRm_ERROR_NO_MEMCARD, /* nothing inserted in either Slot A or Slot B */
|
||||
|
||||
mFRm_ERROR_NUM
|
||||
mFRm_ERROR_BAD_RTC, /* RTC returned abnormal value */
|
||||
mFRm_ERROR_MEMCARD_TRAVELDATA_CONFLICT, /* travel data is on the same memory card as requesting to save town data */
|
||||
mFRm_ERROR_DATA_CORRUPTED, /* save data is corrupt */
|
||||
mFRm_ERROR_MEMCARD_NO_FILES, /* memory card is out of "files" */
|
||||
mFRm_ERROR_MEMCARD_DAMAGED, /* memory card is damaged */
|
||||
mFRm_ERROR_MEMCARD_FORMAT, /* memory card requires formatting (corrupt or different region?) */
|
||||
mFRm_ERROR_MEMCARD_INVALID, /* memory card type "cannot be used with Animal Crossing" */
|
||||
mFRm_ERROR_MEMCARD_NO_SPACE, /* memory card has free files, but not enough free space for save */
|
||||
mFRm_ERROR_NOT_MEMCARD, /* device in card slot is not a memory card */
|
||||
mFRm_ERROR_NO_MEMCARD, /* nothing inserted in either Slot A or Slot B */
|
||||
|
||||
mFRm_ERROR_NUM
|
||||
};
|
||||
|
||||
typedef struct mFRm_chk_s {
|
||||
/* 0x00 */ int version;
|
||||
/* 0x04 */ u32 code;
|
||||
/* 0x08 */ u16 land_id;
|
||||
/* 0x0A */ lbRTC_time_c time;
|
||||
/* 0x12 */ u16 checksum;
|
||||
/* 0x00 */ int version;
|
||||
/* 0x04 */ u32 code;
|
||||
/* 0x08 */ u16 land_id;
|
||||
/* 0x0A */ lbRTC_time_c time;
|
||||
/* 0x12 */ u16 checksum;
|
||||
} mFRm_chk_t;
|
||||
|
||||
typedef struct flashrom_error_info {
|
||||
int err_no;
|
||||
int proc_idx;
|
||||
int err_no;
|
||||
int proc_idx;
|
||||
} mFRm_err_info_c;
|
||||
|
||||
typedef int (save_check_proc)(void);
|
||||
typedef int(save_check_proc)(void);
|
||||
|
||||
extern MATCH_FORCESTRIP void mFRm_PrintErrInfo(gfxprint_t* gfxprint);
|
||||
extern void mFRm_set_msg_idx(int idx);
|
||||
extern int mFRm_get_msg_idx();
|
||||
extern u16 mFRm_ReturnCheckSum(u16* data, int size);
|
||||
@@ -57,7 +58,7 @@ extern void mFRm_PrintSavedDebug(gfxprint_t* gfxprint);
|
||||
extern void mFRm_clear_err_info();
|
||||
extern void mFRm_save_data_check();
|
||||
extern void mFRm_display_errInfo(gfxprint_t* gfxprint);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+54
-51
@@ -19,79 +19,82 @@ extern "C" {
|
||||
#define mHandbill_MAIL_NUM 982
|
||||
|
||||
enum {
|
||||
mHandbill_FREE_STR0,
|
||||
mHandbill_FREE_STR1,
|
||||
mHandbill_FREE_STR2,
|
||||
mHandbill_FREE_STR3,
|
||||
mHandbill_FREE_STR4,
|
||||
mHandbill_FREE_STR5,
|
||||
mHandbill_FREE_STR6,
|
||||
mHandbill_FREE_STR7,
|
||||
mHandbill_FREE_STR8,
|
||||
mHandbill_FREE_STR9,
|
||||
mHandbill_FREE_STR10,
|
||||
mHandbill_FREE_STR11,
|
||||
mHandbill_FREE_STR12,
|
||||
mHandbill_FREE_STR13,
|
||||
mHandbill_FREE_STR14,
|
||||
mHandbill_FREE_STR15,
|
||||
mHandbill_FREE_STR16,
|
||||
mHandbill_FREE_STR17,
|
||||
mHandbill_FREE_STR18,
|
||||
mHandbill_FREE_STR19,
|
||||
mHandbill_FREE_STR0,
|
||||
mHandbill_FREE_STR1,
|
||||
mHandbill_FREE_STR2,
|
||||
mHandbill_FREE_STR3,
|
||||
mHandbill_FREE_STR4,
|
||||
mHandbill_FREE_STR5,
|
||||
mHandbill_FREE_STR6,
|
||||
mHandbill_FREE_STR7,
|
||||
mHandbill_FREE_STR8,
|
||||
mHandbill_FREE_STR9,
|
||||
mHandbill_FREE_STR10,
|
||||
mHandbill_FREE_STR11,
|
||||
mHandbill_FREE_STR12,
|
||||
mHandbill_FREE_STR13,
|
||||
mHandbill_FREE_STR14,
|
||||
mHandbill_FREE_STR15,
|
||||
mHandbill_FREE_STR16,
|
||||
mHandbill_FREE_STR17,
|
||||
mHandbill_FREE_STR18,
|
||||
mHandbill_FREE_STR19,
|
||||
|
||||
mHandbill_FREE_STR_NUM
|
||||
mHandbill_FREE_STR_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mHandbill_FILL_NONE,
|
||||
mHandbill_FILL_RETURN,
|
||||
mHandbill_FILL_SPACE,
|
||||
mHandbill_FILL_NONE,
|
||||
mHandbill_FILL_RETURN,
|
||||
mHandbill_FILL_SPACE,
|
||||
|
||||
mHandbill_FILL_NUM
|
||||
mHandbill_FILL_NUM
|
||||
};
|
||||
|
||||
typedef struct handbill_data_s mHandbill_Data_c;
|
||||
|
||||
struct handbill_data_s {
|
||||
u8 free_str[mHandbill_FREE_STR_NUM][mHandbill_FREE_STR_LEN];
|
||||
int free_str_art[mHandbill_FREE_STR_NUM];
|
||||
int force_art;
|
||||
int capital_flag;
|
||||
u8 free_str[mHandbill_FREE_STR_NUM][mHandbill_FREE_STR_LEN];
|
||||
int free_str_art[mHandbill_FREE_STR_NUM];
|
||||
int force_art;
|
||||
int capital_flag;
|
||||
};
|
||||
|
||||
extern void mHandbill_Load_HandbillFromRom(u8* header, int* header_back_pos, u8* footer, u8* body, int handbill_no);
|
||||
extern void mHandbill_Load_HandbillFromRom2(u8* header, int header_size, int* header_back_pos, u8* footer, int footer_size, u8* body, int handbill_no);
|
||||
extern void mHandbill_Set_free_str(int free_str_no, u8* str, int str_len);
|
||||
extern void mHandbill_Set_free_str_art(int free_str_no, u8* str, int str_len, int article_no);
|
||||
extern void mHandbill_aram_init();
|
||||
extern void mHandbill_Set_free_str(int str_num, u8* str, int str_len);
|
||||
extern void mHandbill_Set_free_str_art(int str_num, u8* str, int str_len, int article);
|
||||
extern int mHandbill_MoveDataCut(u8* data, int buf_size, int dst_idx, int src_idx, int data_len, int fill_type);
|
||||
extern void mHandbill_Load_HandbillFromRom(u8* header, int* header_back_start, u8* footer, u8* body, int mail_no);
|
||||
extern void mHandbill_Load_HandbillFromRom2(u8* header, int header_size, int* header_back_start, u8* footer,
|
||||
int footer_size, u8* body, int mail_no);
|
||||
|
||||
enum {
|
||||
mHandbillz_TYPE_SUPER,
|
||||
mHandbillz_TYPE_MAILA,
|
||||
mHandbillz_TYPE_MAILB,
|
||||
mHandbillz_TYPE_MAILC,
|
||||
mHandbillz_TYPE_PS,
|
||||
mHandbillz_TYPE_SUPER,
|
||||
mHandbillz_TYPE_MAILA,
|
||||
mHandbillz_TYPE_MAILB,
|
||||
mHandbillz_TYPE_MAILC,
|
||||
mHandbillz_TYPE_PS,
|
||||
|
||||
mHandbillz_TYPE_NUM
|
||||
mHandbillz_TYPE_NUM
|
||||
};
|
||||
|
||||
typedef struct mHandbillz_info_s {
|
||||
u8* super_buf_p;
|
||||
size_t super_buf_size;
|
||||
u8* super_buf_p;
|
||||
size_t super_buf_size;
|
||||
|
||||
u8* mail_buf_p;
|
||||
size_t mail_buf_size;
|
||||
u8* mail_buf_p;
|
||||
size_t mail_buf_size;
|
||||
|
||||
u8* ps_buf_p;
|
||||
size_t ps_buf_size;
|
||||
u8* ps_buf_p;
|
||||
size_t ps_buf_size;
|
||||
|
||||
int super_no;
|
||||
int maila_no;
|
||||
int mailb_no;
|
||||
int mailc_no;
|
||||
int ps_no;
|
||||
int super_no;
|
||||
int maila_no;
|
||||
int mailb_no;
|
||||
int mailc_no;
|
||||
int ps_no;
|
||||
|
||||
int header_back_start;
|
||||
int header_back_start;
|
||||
} mHandbillz_Info_c;
|
||||
|
||||
extern int mHandbillz_load(mHandbillz_Info_c* info);
|
||||
|
||||
@@ -14,14 +14,17 @@ typedef void (*mHP_SET_HANIWAPORTRAIT_PROC)(Submenu*, mSM_MenuInfo_c*, GRAPH*, G
|
||||
typedef void (*mHP_HANIWAPORTRAIT_SHAPE_MOVE_PROC)(Submenu*);
|
||||
|
||||
struct haniwaPortrait_ovl_s {
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
s_xyz keyframe_work[8];
|
||||
s_xyz keyframe_morph[8];
|
||||
u8 _0D0[72];
|
||||
mHP_SET_HANIWAPORTRAIT_PROC set_haniwaPortrait_proc;
|
||||
mHP_HANIWAPORTRAIT_SHAPE_MOVE_PROC haniwaPortrait_shape_move_proc;
|
||||
cKF_SkeletonInfo_R_c keyframe;
|
||||
s_xyz keyframe_work[8];
|
||||
s_xyz keyframe_morph[8];
|
||||
u8 _0D0[72];
|
||||
mHP_SET_HANIWAPORTRAIT_PROC set_haniwaPortrait_proc;
|
||||
mHP_HANIWAPORTRAIT_SHAPE_MOVE_PROC haniwaPortrait_shape_move_proc;
|
||||
};
|
||||
|
||||
extern void mHP_haniwaPortrait_ovl_construct(Submenu* submenu);
|
||||
extern void mHP_haniwaPortrait_ovl_destruct(Submenu* submenu);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -40,6 +40,7 @@ extern "C" {
|
||||
|
||||
/* short angle -> radians */
|
||||
#define SHORT2RAD_ANGLE(s) ((((f32)(s)) / (65536.0f / (2.0f * F_PI))))
|
||||
#define SHORT2RAD_ANGLE2(s) ((f32)(s) * ((2.0f * F_PI) / 65536.0f))
|
||||
#define SHORTANGLE2RAD(sangle) ((F_PI / 32768.0f) * ((f32)(sangle)))
|
||||
|
||||
/* degrees -> short angle */
|
||||
|
||||
@@ -555,6 +555,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
|
||||
#define FTR0_START 0x1000
|
||||
#define FTR_CLASSIC_WARDROBE 0x1004
|
||||
#define FTR_FAN 0x1088
|
||||
#define FTR_PAPA_BEAR 0x10E8
|
||||
#define FTR_PAPA_BEAR_EAST 0x10E9
|
||||
#define FTR_PAPA_BEAR_NORTH 0x10EA
|
||||
|
||||
@@ -60,6 +60,9 @@ extern int mPlib_check_player_actor_main_index_RecieveMove(GAME* game);
|
||||
extern int mPlib_check_label_player_demo_wait(GAME* game, void* label);
|
||||
extern int mPlib_check_player_outdoor_start(GAME* game);
|
||||
extern void mPlib_Set_change_color_request();
|
||||
extern int mPlib_check_player_open_umbrella(GAME_PLAY* play);
|
||||
extern int mPlib_Check_UKI_COMEBACK_STATUS();
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove(GAME_PLAY* play);
|
||||
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();
|
||||
|
||||
@@ -67,6 +70,7 @@ extern void mPlib_Object_Exchange_keep_new_PlayerMdl(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerTex(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFaceTex(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFacePallet(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerPallet(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_request_main_give_type1(GAME* game, mActor_name_t item, int mode, int present, int on_surface);
|
||||
|
||||
#define GET_PLAYER_ACTOR(play) get_player_actor_withoutCheck(play)
|
||||
|
||||
+9
-5
@@ -30,15 +30,19 @@ extern Gfx* gfx_softsprite_prim_xlu(Gfx* gfx);
|
||||
extern Gfx* gfx_tex_scroll2(Gfx** gfxpp, int x, int y, int width, int height);
|
||||
extern Gfx* tex_scroll2(GRAPH* graph, u32 x, u32 y, int width, int height);
|
||||
extern Gfx* tex_scroll2_dolphin(GRAPH* graph, int x, int y, int width, int height);
|
||||
extern Gfx* two_tex_scroll(GRAPH* graph, int tile1, int x1, int y1, int width1, int height1, int tile2, int x2, int y2, int width2, int height2);
|
||||
extern Gfx* two_tex_scroll_dolphin(GRAPH* graph, int tile1, int x1, int y1, int width1, int height1, int tile2, int x2, int y2, int width2, int height2);
|
||||
extern void DisplayList_initialize(GRAPH* graph, u32 clear_r, u32 clear_g, u32 clear_b, GAME* game);
|
||||
extern Gfx* two_tex_scroll(GRAPH* graph, int tile1, int x1, int y1, int width1, int height1, int tile2, int x2, int y2,
|
||||
int width2, int height2);
|
||||
extern Gfx* two_tex_scroll_dolphin(GRAPH* graph, int tile1, int x1, int y1, int width1, int height1, int tile2, int x2,
|
||||
int y2, int width2, int height2);
|
||||
extern void DisplayList_initialize(GRAPH* graph, u8 clear_r, u8 clear_g, u8 clear_b, GAME* game);
|
||||
extern void fade_rgba8888_draw(Gfx** gfxp, u32 color);
|
||||
extern void fade_black_draw(Gfx** gfx, u32 color);
|
||||
extern Gfx* gfx_gDPFillRectangle1(Gfx* gfx, u32 ulx, u32 uly, u32 lrx, u32 lry);
|
||||
extern Gfx* gfx_gDPFillRectangleF(Gfx* gfx, u32 ulx, u32 uly, u32 lrx, u32 lry);
|
||||
extern Gfx* gfx_gSPTextureRectangle1(Gfx* gfx, int xl, int yl, int xh, int yh, int tile, int s, int t, int dsdx, int dtdy);
|
||||
extern Gfx* gfx_gSPScisTextureRectangle1(Gfx* gfx, int xl, int yl, int xh, int yh, int tile, int s, int t, int dsdx, int dtdy);
|
||||
extern Gfx* gfx_gSPTextureRectangle1(Gfx* gfx, int xl, int yl, int xh, int yh, int tile, int s, int t, int dsdx,
|
||||
int dtdy);
|
||||
extern Gfx* gfx_gSPScisTextureRectangle1(Gfx* gfx, int xl, int yl, int xh, int yh, int tile, int s, int t, int dsdx,
|
||||
int dtdy);
|
||||
|
||||
extern Gfx RSP_RDP_clear_data[];
|
||||
extern int fbdemo_mode;
|
||||
|
||||
+18
-14
@@ -10,26 +10,30 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
mRP_CURSOR_100000,
|
||||
mRP_CURSOR_10000,
|
||||
mRP_CURSOR_1000,
|
||||
mRP_CURSOR_100,
|
||||
mRP_CURSOR_10,
|
||||
mRP_CURSOR_1,
|
||||
mRP_CURSOR_OK,
|
||||
mRP_CURSOR_100000,
|
||||
mRP_CURSOR_10000,
|
||||
mRP_CURSOR_1000,
|
||||
mRP_CURSOR_100,
|
||||
mRP_CURSOR_10,
|
||||
mRP_CURSOR_1,
|
||||
mRP_CURSOR_OK,
|
||||
|
||||
mRP_CURSOR_NUM
|
||||
mRP_CURSOR_NUM
|
||||
};
|
||||
|
||||
struct repay_ovl_s {
|
||||
u32 money;
|
||||
u32 loan;
|
||||
u32 repay_amount;
|
||||
u32 max_money;
|
||||
u32 max_repay;
|
||||
int cursor_idx;
|
||||
u32 money;
|
||||
u32 loan;
|
||||
u32 repay_amount;
|
||||
u32 max_money;
|
||||
u32 max_repay;
|
||||
int cursor_idx;
|
||||
};
|
||||
|
||||
extern void mRP_repay_ovl_set_proc(Submenu* submenu);
|
||||
extern void mRP_repay_ovl_construct(Submenu* submenu);
|
||||
extern void mRP_repay_ovl_destruct(Submenu* submenu);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+20
-16
@@ -13,32 +13,36 @@ extern "C" {
|
||||
#define mTI_MAX_YEAR 30
|
||||
|
||||
enum {
|
||||
mTI_IDX_HOUR,
|
||||
mTI_IDX_MIN,
|
||||
mTI_IDX_MONTH,
|
||||
mTI_IDX_DAY,
|
||||
mTI_IDX_YEAR,
|
||||
mTI_IDX_OK,
|
||||
mTI_IDX_HOUR,
|
||||
mTI_IDX_MIN,
|
||||
mTI_IDX_MONTH,
|
||||
mTI_IDX_DAY,
|
||||
mTI_IDX_YEAR,
|
||||
mTI_IDX_OK,
|
||||
|
||||
mTI_IDX_NUM = mTI_IDX_OK
|
||||
mTI_IDX_NUM = mTI_IDX_OK
|
||||
};
|
||||
|
||||
enum {
|
||||
mTI_OVL_OPEN_NORMAL,
|
||||
mTI_OVL_OPEN_INITIAL,
|
||||
mTI_OVL_OPEN_NORMAL,
|
||||
mTI_OVL_OPEN_INITIAL,
|
||||
|
||||
mTI_OVL_OPEN_NUM
|
||||
mTI_OVL_OPEN_NUM
|
||||
};
|
||||
|
||||
struct timeIn_ovl_s {
|
||||
u16 values[mTI_IDX_NUM];
|
||||
int sel_idx;
|
||||
u16 saved_min;
|
||||
u16 input_disabled_flag;
|
||||
lbRTC_time_c original_time;
|
||||
int init_flag;
|
||||
u16 values[mTI_IDX_NUM];
|
||||
int sel_idx;
|
||||
u16 saved_min;
|
||||
u16 input_disabled_flag;
|
||||
lbRTC_time_c original_time;
|
||||
int init_flag;
|
||||
};
|
||||
|
||||
extern void mTI_timeIn_ovl_set_proc(Submenu* submenu);
|
||||
extern void mTI_timeIn_ovl_construct(Submenu* submenu);
|
||||
extern void mTI_timeIn_ovl_destruct(Submenu* submenu);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+50
-44
@@ -12,77 +12,83 @@ extern "C" {
|
||||
#define mVibctl_FLAG_FORCE_STOP1 (1 << 1) // 2
|
||||
#define mVibctl_FLAG_FORCE_STOP2 (1 << 2) // 4
|
||||
#define mVibctl_FLAG_FORCE_STOP3 (1 << 3) // 8
|
||||
#define mVibctl_FLAG_FORCE_STOP_ALL (mVibctl_FLAG_FORCE_STOP0 | mVibctl_FLAG_FORCE_STOP1 | mVibctl_FLAG_FORCE_STOP2 | mVibctl_FLAG_FORCE_STOP3) // 15
|
||||
#define mVibctl_FLAG_FORCE_STOP_ALL \
|
||||
(mVibctl_FLAG_FORCE_STOP0 | mVibctl_FLAG_FORCE_STOP1 | mVibctl_FLAG_FORCE_STOP2 | mVibctl_FLAG_FORCE_STOP3) // 15
|
||||
|
||||
enum {
|
||||
mVibctl_ELEM_ENTRY_ATTACK, // fade-in program
|
||||
mVibctl_ELEM_ENTRY_SUSTAIN, // sustain program
|
||||
mVibctl_ELEM_ENTRY_RELEASE, // fade-out program
|
||||
mVibctl_ELEM_ENTRY_END, // program has finished
|
||||
mVibctl_ELEM_ENTRY_ATTACK, // fade-in program
|
||||
mVibctl_ELEM_ENTRY_SUSTAIN, // sustain program
|
||||
mVibctl_ELEM_ENTRY_RELEASE, // fade-out program
|
||||
mVibctl_ELEM_ENTRY_END, // program has finished
|
||||
|
||||
mVibctl_ELEM_ENTRY_NUM = mVibctl_ELEM_ENTRY_END
|
||||
mVibctl_ELEM_ENTRY_NUM = mVibctl_ELEM_ENTRY_END
|
||||
};
|
||||
|
||||
enum {
|
||||
mVibctl_VIB_PROG_NON, // rumble config attack, shake tree attack
|
||||
mVibctl_VIB_PROG_FFF, // fish touch bobber, fishing rod cast, rumble config sustain, Mouth of Truth furniture interaction attack & sustain, shovel hits soft object, net swing, axe cut attack & release, trip attack, pick weed sustain & release
|
||||
mVibctl_VIB_PROG_F, // unused?
|
||||
mVibctl_VIB_PROG_MF, // unused?
|
||||
mVibctl_VIB_PROG_MP, // unused?
|
||||
mVibctl_VIB_PROG_P, // rumble config release, shake tree release
|
||||
mVibctl_VIB_PROG_FUNBARI, // unused?
|
||||
mVibctl_VIB_PROG_ANAHORI, // digging with shovel
|
||||
mVibctl_VIB_PROG_ANAUME, // filling hole with shovel
|
||||
mVibctl_VIB_PROG_IMPACT, // fish bite bobber, shovel hits hard object
|
||||
mVibctl_VIB_PROG_KI_GA_TAORERU, // axe cut sustain
|
||||
mVibctl_VIB_PROG_KI_WO_YUSURU, // shake tree sustain
|
||||
mVibctl_VIB_PROG_KORONODA, // trip sustain
|
||||
mVibctl_VIB_PROG_SURPRISE, // Mouth of Truth furniture interaction release
|
||||
mVibctl_VIB_PROG_DUMMY_B, // unused?
|
||||
mVibctl_VIB_PROG_SAMPLE, // unused?
|
||||
mVibctl_VIB_PROG_NON, // rumble config attack, shake tree attack
|
||||
mVibctl_VIB_PROG_FFF, // fish touch bobber, fishing rod cast, rumble config sustain, Mouth of Truth furniture
|
||||
// interaction attack & sustain, shovel hits soft object, net swing, axe cut attack & release,
|
||||
// trip attack, pick weed sustain & release
|
||||
mVibctl_VIB_PROG_F, // unused?
|
||||
mVibctl_VIB_PROG_MF, // unused?
|
||||
mVibctl_VIB_PROG_MP, // unused?
|
||||
mVibctl_VIB_PROG_P, // rumble config release, shake tree release
|
||||
mVibctl_VIB_PROG_FUNBARI, // unused?
|
||||
mVibctl_VIB_PROG_ANAHORI, // digging with shovel
|
||||
mVibctl_VIB_PROG_ANAUME, // filling hole with shovel
|
||||
mVibctl_VIB_PROG_IMPACT, // fish bite bobber, shovel hits hard object
|
||||
mVibctl_VIB_PROG_KI_GA_TAORERU, // axe cut sustain
|
||||
mVibctl_VIB_PROG_KI_WO_YUSURU, // shake tree sustain
|
||||
mVibctl_VIB_PROG_KORONODA, // trip sustain
|
||||
mVibctl_VIB_PROG_SURPRISE, // Mouth of Truth furniture interaction release
|
||||
mVibctl_VIB_PROG_DUMMY_B, // unused?
|
||||
mVibctl_VIB_PROG_SAMPLE, // unused?
|
||||
|
||||
mVibctl_VIB_PROG_NUM
|
||||
mVibctl_VIB_PROG_NUM
|
||||
};
|
||||
|
||||
#define mVibctl_ELEM_NUM 4
|
||||
|
||||
typedef struct vibration_element_entry_s {
|
||||
int type;
|
||||
int frames;
|
||||
f32 step;
|
||||
int type;
|
||||
int frames;
|
||||
f32 step;
|
||||
} mVibInfo_elem_entry_c;
|
||||
|
||||
typedef struct vibration_element_s {
|
||||
mVibInfo_elem_entry_c entries[mVibctl_ELEM_ENTRY_NUM];
|
||||
f32 step0;
|
||||
f32 step1;
|
||||
int now_entry;
|
||||
int state_idx;
|
||||
f32 frame_intensity;
|
||||
int entry_frame;
|
||||
f32 now_intensity;
|
||||
int command; // for padmgr, PAD_MOTOR_*
|
||||
mVibInfo_elem_entry_c entries[mVibctl_ELEM_ENTRY_NUM];
|
||||
f32 step0;
|
||||
f32 step1;
|
||||
int now_entry;
|
||||
int state_idx;
|
||||
f32 frame_intensity;
|
||||
int entry_frame;
|
||||
f32 now_intensity;
|
||||
int command; // for padmgr, PAD_MOTOR_*
|
||||
} mVibElem_c;
|
||||
|
||||
typedef struct vibration_info_s {
|
||||
mVibElem_c* target_elem;
|
||||
mVibElem_c elements[mVibctl_ELEM_NUM];
|
||||
int num_elements;
|
||||
int force_stop;
|
||||
int last_force_stop;
|
||||
mVibElem_c* target_elem;
|
||||
mVibElem_c elements[mVibctl_ELEM_NUM];
|
||||
int num_elements;
|
||||
int force_stop;
|
||||
int last_force_stop;
|
||||
} mVibInfo_c;
|
||||
|
||||
typedef struct vibration_work_data_S {
|
||||
const u8* data;
|
||||
int count;
|
||||
const u8* data;
|
||||
int count;
|
||||
} mVibWorkData_c;
|
||||
|
||||
extern void mVibctl_ct();
|
||||
extern void mVibctl_init0();
|
||||
extern void mVibctl_init();
|
||||
extern void mVibctl_cleanup();
|
||||
extern void mVibctl_reset();
|
||||
extern void mVibctl_entry(int total_frames, int attack_type, int sustain_type, int release_type, int attack_frames, int sustain_frames, int release_frames, f32 step);
|
||||
extern void mVibctl_simple_entry(int total_frames, int type, int attack_frames, int sustain_frames, int release_frames, f32 step);
|
||||
extern void mVibctl_entry(int total_frames, int attack_type, int sustain_type, int release_type, int attack_frames,
|
||||
int sustain_frames, int release_frames, f32 step);
|
||||
extern void mVibctl_simple_entry(int total_frames, int type, int attack_frames, int sustain_frames, int release_frames,
|
||||
f32 step);
|
||||
extern void mVibctl_set_force_stop(int force_stop);
|
||||
extern void mVibctl_clr_force_stop(int force_stop);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ extern OSThread graphThread;
|
||||
extern u8 SegmentBaseAddress[0x40];
|
||||
|
||||
void foresta_main();
|
||||
extern void mainproc(void* val);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+63
-61
@@ -14,52 +14,52 @@ extern "C" {
|
||||
#define PADMSGBUFCNT 8
|
||||
|
||||
enum pads {
|
||||
PAD0,
|
||||
PAD1,
|
||||
PAD2,
|
||||
PAD3,
|
||||
PAD0,
|
||||
PAD1,
|
||||
PAD2,
|
||||
PAD3,
|
||||
|
||||
PAD_NUM
|
||||
PAD_NUM
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
u8 last_command; // PAD_MOTOR_*
|
||||
u8 now_command; // PAD_MOTOR_*
|
||||
u8 frames;
|
||||
u8 _pad;
|
||||
u8 last_command; // PAD_MOTOR_*
|
||||
u8 now_command; // PAD_MOTOR_*
|
||||
u8 frames;
|
||||
u8 _pad;
|
||||
} Motor_t;
|
||||
|
||||
typedef struct {
|
||||
Motor_t motors[MAXCONTROLLERS];
|
||||
s16 cooldown_frames;
|
||||
u8 rumble_frames;
|
||||
u8 _pad0;
|
||||
u8 reset;
|
||||
Motor_t motors[MAXCONTROLLERS];
|
||||
s16 cooldown_frames;
|
||||
u8 rumble_frames;
|
||||
u8 _pad0;
|
||||
u8 reset;
|
||||
} Rumble_t;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u8 pad_pattern;
|
||||
/* 0x0004 */ void (*callback)(void*);
|
||||
/* 0x0008 */ void* callback_param;
|
||||
/* 0x000C */ void (*callback2)(void*);
|
||||
/* 0x0010 */ void* callback2_param;
|
||||
/* 0x0000 */ u8 pad_pattern;
|
||||
/* 0x0004 */ void (*callback)(void*);
|
||||
/* 0x0008 */ void* callback_param;
|
||||
/* 0x000C */ void (*callback2)(void*);
|
||||
/* 0x0010 */ void* callback2_param;
|
||||
|
||||
/* 0x0014 */ OSContStatus pad_status[MAXCONTROLLERS];
|
||||
/* 0x0024 */ OSMessage _msg24;
|
||||
/* 0x0028 */ OSMessage _msg28;
|
||||
/* 0x002C */ OSMessage _msgBuf2C[PADMSGBUFCNT];
|
||||
/* 0x004C */ OSMessageQueue _msgQueue4C;
|
||||
/* 0x006C */ OSMessageQueue _msgQueue6C;
|
||||
/* 0x008C */ OSMessageQueue _msgQueue8C;
|
||||
/* 0x00AC */ irqmgr_client_t irqclient;
|
||||
/* 0x00B4 */ u32 _unk0; /* maybe additional value in irqmgr_client_t? */
|
||||
/* 0x00B8 */ OSThread thread;
|
||||
/* 0x03C8 */ u8 _tmp[0x60]; //pad_t pads[MAXCONTROLLERS]; // TODO: figure out what's going on here.
|
||||
/* 0x0428 */ OSContPad n64_pads[MAXCONTROLLERS]; /* Converted from PADStatus via JUTGamePad */
|
||||
/* 0x0440 */ u8 num_controllers;
|
||||
/* 0x0441 */ u8 device_type[4];
|
||||
/* 0x0445 */ u8 pak_type[4];
|
||||
/* 0x044A */ Rumble_t rumble;
|
||||
/* 0x0014 */ OSContStatus pad_status[MAXCONTROLLERS];
|
||||
/* 0x0024 */ OSMessage _msg24;
|
||||
/* 0x0028 */ OSMessage _msg28;
|
||||
/* 0x002C */ OSMessage _msgBuf2C[PADMSGBUFCNT];
|
||||
/* 0x004C */ OSMessageQueue _msgQueue4C;
|
||||
/* 0x006C */ OSMessageQueue _msgQueue6C;
|
||||
/* 0x008C */ OSMessageQueue _msgQueue8C;
|
||||
/* 0x00AC */ irqmgr_client_t irqclient;
|
||||
/* 0x00B4 */ u32 _unk0; /* maybe additional value in irqmgr_client_t? */
|
||||
/* 0x00B8 */ OSThread thread;
|
||||
/* 0x03C8 */ u8 _tmp[0x60]; // pad_t pads[MAXCONTROLLERS]; // TODO: figure out what's going on here.
|
||||
/* 0x0428 */ OSContPad n64_pads[MAXCONTROLLERS]; /* Converted from PADStatus via JUTGamePad */
|
||||
/* 0x0440 */ u8 num_controllers;
|
||||
/* 0x0441 */ u8 device_type[4];
|
||||
/* 0x0445 */ u8 pak_type[4];
|
||||
/* 0x044A */ Rumble_t rumble;
|
||||
} padmgr;
|
||||
|
||||
extern padmgr padmgr_class;
|
||||
@@ -70,38 +70,40 @@ extern void padmgr_force_stop_OFF();
|
||||
extern void padmgr_RumbleSet(int pad, int intensity);
|
||||
extern void padmgr_Create(OSMessageQueue* queue, OSId id, OSPri priority, void* stack, size_t stackSize);
|
||||
extern void padmgr_Init(OSMessageQueue* queue);
|
||||
extern void padmgr_RequestPadData(pad_t* pad, int count);
|
||||
extern void padmgr_ClearPadData(pad_t* pad);
|
||||
|
||||
#define padmgr_setClient(callback_proc, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
mgr->callback = callback_proc; \
|
||||
mgr->callback_param = param; \
|
||||
} while (0)
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
mgr->callback = callback_proc; \
|
||||
mgr->callback_param = param; \
|
||||
} while (0)
|
||||
|
||||
#define padmgr_removeClient(callback_proc, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
if (mgr->callback == (callback_proc) && mgr->callback_param == (param)) { \
|
||||
mgr->callback = NULL; \
|
||||
mgr->callback_param = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
#define padmgr_removeClient(callback_proc, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
if (mgr->callback == (callback_proc) && mgr->callback_param == (param)) { \
|
||||
mgr->callback = NULL; \
|
||||
mgr->callback_param = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define padmgr_setClient2(callback, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
mgr->callback2 = callback; \
|
||||
mgr->callback2_param = param; \
|
||||
} while (0)
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
mgr->callback2 = callback; \
|
||||
mgr->callback2_param = param; \
|
||||
} while (0)
|
||||
|
||||
#define padmgr_removeClient2(callback, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
if (mgr->callback2 == (callback) && mgr->callback2_param == (param)) { \
|
||||
mgr->callback2 = NULL; \
|
||||
mgr->callback2_param = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
#define padmgr_removeClient2(callback, param) \
|
||||
do { \
|
||||
padmgr* mgr = &padmgr_class; \
|
||||
if (mgr->callback2 == (callback) && mgr->callback2_param == (param)) { \
|
||||
mgr->callback2 = NULL; \
|
||||
mgr->callback2_param = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+17
-16
@@ -10,35 +10,36 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum save_mode {
|
||||
SAVE_MODE_BEGIN,
|
||||
SAVE_MODE_BEGIN,
|
||||
|
||||
SAVE_MODE_FLASHROM = SAVE_MODE_BEGIN,
|
||||
SAVE_MODE_CPAK,
|
||||
SAVE_MODE_FLASHROM = SAVE_MODE_BEGIN,
|
||||
SAVE_MODE_CPAK,
|
||||
|
||||
SAVE_MODE_NUM
|
||||
SAVE_MODE_NUM
|
||||
};
|
||||
|
||||
enum save_error {
|
||||
SAVE_ERROR_NONE,
|
||||
SAVE_ERROR_FLASHROM,
|
||||
SAVE_ERROR_CPAK,
|
||||
SAVE_ERROR_EXIT,
|
||||
SAVE_ERROR_NONE,
|
||||
SAVE_ERROR_FLASHROM,
|
||||
SAVE_ERROR_CPAK,
|
||||
SAVE_ERROR_EXIT,
|
||||
|
||||
SAVE_ERROR_NUM
|
||||
SAVE_ERROR_NUM
|
||||
};
|
||||
|
||||
/* sizeof(struct game_save_menu_s) == 0x0228 */
|
||||
typedef struct game_save_menu_s {
|
||||
/* 0x0000 */ GAME game;
|
||||
/* 0x00E0 */ View view;
|
||||
/* 0x0200 */ u32 frame;
|
||||
/* 0x0204 */ int mode;
|
||||
/* 0x0208 */ int error;
|
||||
/* 0x020C */ int cursor_col[SAVE_MODE_NUM][3];
|
||||
/* 0x0000 */ GAME game;
|
||||
/* 0x00E0 */ View view;
|
||||
/* 0x0200 */ u32 frame;
|
||||
/* 0x0204 */ int mode;
|
||||
/* 0x0208 */ int error;
|
||||
/* 0x020C */ int cursor_col[SAVE_MODE_NUM][3];
|
||||
} GAME_SAVE_MENU;
|
||||
|
||||
extern void save_menu_init(GAME* game);
|
||||
extern void save_menu_draw_main(GAME_SAVE_MENU* save_menu);
|
||||
extern void save_menu_cleanup(GAME* game);
|
||||
extern void save_menu_init(GAME* game);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user