mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-07-08 04:15:11 -04:00
m_tag_ovl 100%
This commit is contained in:
@@ -1090,6 +1090,11 @@ m_submenu_ovl.c:
|
||||
.rodata: [0x8064B870, 0x8064B900]
|
||||
.data: [0x806CE550, 0x806CF928]
|
||||
.bss: [0x813405C0, 0x81340FC8]
|
||||
m_tag_ovl.c:
|
||||
.text: [0x805EF6CC, 0x805FF3C4]
|
||||
.rodata: [0x8064B900, 0x8064BA00]
|
||||
.data: [0x806CF928, 0x806D1320]
|
||||
.bss: [0x81340FC8, 0x81341390]
|
||||
m_timeIn_ovl.c:
|
||||
.text: [0x805FF3C4, 0x80600370]
|
||||
.rodata: [0x8064BA00, 0x8064BA58]
|
||||
|
||||
@@ -46,7 +46,7 @@ typedef enum audio_sound_effects {
|
||||
|
||||
NA_SE_MENU_PAUSE = 0x30,
|
||||
NA_SE_31 = 0x31,
|
||||
|
||||
NA_SE_32 = 0x32,
|
||||
NA_SE_33 = 0x33,
|
||||
|
||||
NA_SE_DRAWER_SHUT = 0x3A,
|
||||
@@ -182,6 +182,9 @@ typedef enum audio_sound_effects {
|
||||
NA_SE_SCOOP_ITEM_HIT,
|
||||
NA_SE_AXE_BALL_HIT,
|
||||
|
||||
NA_SE_45E = 0x45E,
|
||||
NA_SE_45F = 0x45F,
|
||||
|
||||
NA_SE_461 = 0x461,
|
||||
|
||||
NA_SE_COIN_GASAGOSO = 0x465,
|
||||
|
||||
@@ -344,6 +344,10 @@ extern void mCoBG_GroundCheckOnly(xyz_t* reverse_pos, ACTOR* actor, f32 check_ra
|
||||
extern f32 mCoBG_Wpos2BgUtCenterHeight_AddColumn(xyz_t pos);
|
||||
extern f32 mCoBG_UtNum2UtCenterY_Keep(int ut_x, int ut_z);
|
||||
extern int mCoBG_RegistDecalCircle(const xyz_t* pos_p, f32 radius_start, f32 radius_end, s16 timer);
|
||||
extern int mCoBG_CheckAcceptDesignSign(const xyz_t* pos_p);
|
||||
extern void mCoBG_VirtualBGCheck(xyz_t* rev_pos_p, mCoBG_Check_c* bg_check, const xyz_t* start_pos_p,
|
||||
const xyz_t* end_pos_p, s16 angle_y, s16 water_flag, s16 ground_flag, f32 range,
|
||||
f32 ground_dist, s16 attr_wall, s16 rev_type, s16 check_type);
|
||||
|
||||
typedef int (*mCoBG_LINECHECK_PROC)(mActor_name_t);
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ extern "C" {
|
||||
#define mCM_PAGE_COUNT 8
|
||||
#define mCM_MAIL_COUNT 20
|
||||
#define mCM_FOLDER_NAME_LEN 12
|
||||
#define mCM_FOLDER_NAME_MAX_WIDTH 120
|
||||
|
||||
/* TODO: move this to a better header */
|
||||
typedef struct card_mail_s {
|
||||
@@ -24,12 +25,12 @@ struct cpmail_ovl_s {
|
||||
mCD_mail_c* card_mail;
|
||||
Mail_c player_mail[mPr_INVENTORY_MAIL_COUNT];
|
||||
u8 page_order[mCM_PAGE_COUNT];
|
||||
u32 _BB0;
|
||||
s16 page_move_timer;
|
||||
u8 next_page_id;
|
||||
u32 mark_bitfield;
|
||||
int mark_flag;
|
||||
u8 _BBC;
|
||||
u32 mark_bitfield2;
|
||||
// u8 _BBC[0xBC4 - 0xBBC];
|
||||
};
|
||||
|
||||
extern void mCM_cpmail_ovl_construct(Submenu* submenu);
|
||||
|
||||
@@ -12,6 +12,7 @@ extern "C" {
|
||||
#define mCO_PAGE_NUM 8
|
||||
#define mCO_ORIGINAL_NUM 12
|
||||
#define mCO_FOLDER_NAME_LEN 12
|
||||
#define mCO_FOLDER_NAME_MAX_WIDTH 120
|
||||
|
||||
/* TODO: find a better place for this */
|
||||
typedef struct card_original_s {
|
||||
@@ -36,10 +37,12 @@ struct cporiginal_s {
|
||||
};
|
||||
|
||||
extern void mCO_swap_image(Submenu* submenu, mActor_name_t item0, mActor_name_t item1);
|
||||
extern void mCO_change_up_folder(Submenu* submenu, int idx);
|
||||
extern int mCO_top_folder(Submenu* submenu);
|
||||
extern u8* mCO_get_folder_name(Submenu* submenu, int folder);
|
||||
extern u8* mCO_get_image_name(Submenu* submenu, int folder, int idx);
|
||||
extern int mCO_check_mark_flg(Submenu* submenu, int idx);
|
||||
extern void mCO_clear_mark_flg(Submenu* submenu);
|
||||
extern int mCO_check_hide_flg(Submenu* submenu, int folder, int idx);
|
||||
extern void mCO_on_hide_flg(Submenu* submenu, int folder, int idx);
|
||||
extern void mCO_clear_hide_flg(Submenu* submenu);
|
||||
|
||||
@@ -14,7 +14,7 @@ enum {
|
||||
mEE_TYPE_BOARD,
|
||||
mEE_TYPE_NOTICE,
|
||||
mEE_TYPE_MSCORE,
|
||||
mEE_TYPE_CPORIGINAL,
|
||||
mEE_TYPE_CPACK,
|
||||
mEE_TYPE_ORIGINAL_DESIGN,
|
||||
|
||||
mEE_TYPE_NUM
|
||||
|
||||
@@ -15,6 +15,10 @@ extern "C" {
|
||||
#define mIV_ITEM_JOINT_NUM 8
|
||||
#define mIV_PLAYER_EFFECT_NUM 20
|
||||
#define mIV_COLLECT_NUM 40
|
||||
#define mIV_ITEM_COLUMNS 5
|
||||
#define mIV_ITEM_ROWS 3
|
||||
#define mIV_MAIL_COLUMNS 2
|
||||
#define mIV_MAIL_ROWS 5
|
||||
|
||||
enum {
|
||||
mIV_ITEM_SCALE_TYPE_NONE,
|
||||
@@ -80,7 +84,7 @@ struct inventory_ovl_s {
|
||||
u16 selectable_mail_bitfield;
|
||||
|
||||
u32 disp_money;
|
||||
int disp_money_change_frames;
|
||||
int disp_money_chg_step;
|
||||
|
||||
xyz_t shovel_pos;
|
||||
xyz_t release_pos;
|
||||
|
||||
@@ -207,6 +207,10 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define NPC_HOUSE_ID_TO_NPC_ID(house) (house + 0x9000)
|
||||
#define NPC_ID_TO_NPC_HOUSE_ID(npc) (npc - 0x9000)
|
||||
|
||||
#define TICKET_MONTH(n) (1 + (((n) >> 3) & 0xF))
|
||||
#define TICKET_COUNT(n) (1 + ((n) & 7))
|
||||
#define WISP_COUNT(n) (ITEM_IS_WISP(n) ? (1 + (n) - ITM_SPIRIT0) : 0)
|
||||
|
||||
#define ITEM_IS_INSECT(n) ((n) >= ITM_INSECT_START && (n) < ITM_INSECT_END)
|
||||
#define ITEM_IS_WISP(n) ((n) >= ITM_SPIRIT0 && (n) <= ITM_SPIRIT4)
|
||||
#define ITEM_IS_PAPER(n) ((n) >= ITM_PAPER_START && (n) <= (ITM_PAPER_END - 1))
|
||||
@@ -531,6 +535,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define ITEM_IS_EXERCISE_CARD(item) ((item) >= ITM_EXCERCISE_CARD00 && (item) <= ITM_EXCERCISE_CARD12)
|
||||
#define ITEM_IS_BALLOON(item) ((item) >= ITM_BALLOON_START && (item) <= ITM_BUNNY_O_BALLOON)
|
||||
#define ITEM_IS_UMBRELLA(item) ((item) >= ITM_UMBRELLA_START && (item) <= ITM_UMBRELLA_END)
|
||||
#define ITEM_IS_UMBRELLA2(item) ((item) >= ITM_UMBRELLA_START && (item) <= ITM_MY_ORG_UMBRELLA7)
|
||||
#define ITEM_IS_MYUMBRELLA_TOOL(item) ((item) >= ITM_MY_ORG_UMBRELLA0 && (item) <= ITM_MY_ORG_UMBRELLA7)
|
||||
#define ITEM_IS_SCOOP(item) ((item) >= ITM_SHOVEL && (item) <= ITM_SHOVEL)
|
||||
#define ITEM_IS_GOLD_SCOOP(item) ((item) >= ITM_GOLDEN_SHOVEL && (item) <= ITM_GOLDEN_SHOVEL)
|
||||
|
||||
@@ -23,6 +23,7 @@ extern int mNW_check_hide_flg(Submenu* submenu, int idx);
|
||||
extern int mNW_check_mark_flg(Submenu* submenu, int idx);
|
||||
extern void mNW_on_hide_flg(Submenu* submenu, int idx);
|
||||
extern void mNW_clear_hide_flg(Submenu* submenu);
|
||||
extern void mNW_clear_mark_flg(Submenu* submenu);
|
||||
extern void mNW_draw_original(Submenu* submenu, GRAPH* graph, f32 pos_x, f32 pos_y, f32 scale, int idx, int color_flag);
|
||||
|
||||
extern void mNW_needlework_ovl_construct(Submenu* submenu);
|
||||
|
||||
+1
-1
@@ -105,7 +105,7 @@ enum {
|
||||
mSM_IV_OPEN_EXCHANGE,
|
||||
mSM_IV_OPEN_CPMAIL,
|
||||
mSM_IV_OPEN_CURATOR,
|
||||
mSM_IV_OPEN_16,
|
||||
mSM_IV_OPEN_PASSWORD,
|
||||
|
||||
mSM_IV_OPEN_NUM
|
||||
};
|
||||
|
||||
+45
-15
@@ -177,6 +177,22 @@ enum {
|
||||
mTG_TABLE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mTG_WIN_ITEM,
|
||||
mTG_WIN_QITEM,
|
||||
mTG_WIN_SELECT,
|
||||
|
||||
mTG_WIN_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mTG_STR0,
|
||||
mTG_STR1,
|
||||
mTG_STR2,
|
||||
|
||||
mTG_STR_NUM
|
||||
};
|
||||
|
||||
#define mTG_RETURN_CLOSE 0
|
||||
#define mTG_RETURN_KEEP 1
|
||||
|
||||
@@ -227,14 +243,34 @@ typedef struct tag_cpmail_mark_s {
|
||||
s16 _4A;
|
||||
} mTG_cpmail_mark_c;
|
||||
|
||||
enum {
|
||||
mTG_ORG_TYPE_NW,
|
||||
mTG_ORG_TYPE_CO,
|
||||
|
||||
mTG_ORG_TYPE_NUM
|
||||
};
|
||||
|
||||
typedef struct tag_cporiginal_mark_s {
|
||||
f32 _00[2][2];
|
||||
f32 _10[2][2];
|
||||
s16 needlework_idx;
|
||||
s16 cporiginal_idx;
|
||||
f32 _00[mTG_ORG_TYPE_NUM][2];
|
||||
f32 _10[mTG_ORG_TYPE_NUM][2];
|
||||
s16 idx[mTG_ORG_TYPE_NUM];
|
||||
} mTG_cporiginal_mark_c;
|
||||
|
||||
/* TODO */
|
||||
typedef struct tag_cporiginal_mark_entry_s {
|
||||
mActor_name_t item;
|
||||
float pos[2];
|
||||
} mTG_cporiginal_mark_entry_c;
|
||||
|
||||
/* sizeof(mTG_mark_original_c) == 0x34 */
|
||||
typedef struct tag_mark_original_s {
|
||||
/* 0x00 */ mTG_cporiginal_mark_c mark[1];
|
||||
/* 0x24 */ f32 move_percent;
|
||||
/* 0x28 */ u16 mark_flg[mTG_ORG_TYPE_NUM];
|
||||
/* 0x2C */ s16 mark_max[mTG_ORG_TYPE_NUM];
|
||||
/* 0x30 */ s16 mark_mode;
|
||||
} mTG_mark_original_c;
|
||||
|
||||
/* sizeof(mTG_Ovl_c) == 0x3C4 */
|
||||
struct tag_ovl_s {
|
||||
/* 0x000 */ int sel_tag_idx;
|
||||
/* 0x004 */ int ret_tag_idx;
|
||||
@@ -249,16 +285,10 @@ struct tag_ovl_s {
|
||||
/* 0x2F4 */ mTG_cpmail_mark_pos_c _2F4[4];
|
||||
/* 0x324 */ mTG_cpmail_mark_c cpmail_mark[1];
|
||||
/* 0x370 */ f32 _370;
|
||||
/* 0x374 */ int _374;
|
||||
/* 0x378 */ mActor_name_t _378[2];
|
||||
/* 0x37C */ int _37C[5];
|
||||
/* 0x390 */ mTG_cporiginal_mark_c cporiginal_mark[1];
|
||||
/* 0x3B4 */ f32 _3B4;
|
||||
/* 0x3B8 */ u16 needlework_mark_flg;
|
||||
/* 0x3BA */ u16 cporiginal_mark_flg;
|
||||
/* 0x3BC */ s16 needlework_mark_max;
|
||||
/* 0x3BE */ s16 cporiginal_mark_max;
|
||||
/* 0x3C0 */ s16 change_original_mark_mode;
|
||||
/* 0x374 */ u16 nw_gba_flags;
|
||||
/* 0x376 */ u16 _02;
|
||||
/* 0x378 */ mTG_cporiginal_mark_entry_c original_entries[mTG_ORG_TYPE_NUM];
|
||||
/* 0x390 */ mTG_mark_original_c original_mark;
|
||||
};
|
||||
|
||||
extern int mTG_mark_main(Submenu*, mSM_MenuInfo_c*, int, int*);
|
||||
|
||||
+1
-1
@@ -452,7 +452,7 @@ static void mHD_open_sack(Submenu* submenu) {
|
||||
hand_ovl->info.next_act = mHD_ACTION_SASU;
|
||||
hand_ovl->info.wait_timer = 42;
|
||||
sAdo_SysTrgStart(MONO(NA_SE_52));
|
||||
submenu->overlay->inventory_ovl->disp_money_change_frames = amount / 42;
|
||||
submenu->overlay->inventory_ovl->disp_money_chg_step = amount / 42;
|
||||
}
|
||||
|
||||
static void mHD_drop_mail(Submenu* submenu, Mail_c* mail) {
|
||||
|
||||
@@ -1259,7 +1259,7 @@ static void mIV_move_Play(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
case mSM_IV_OPEN_MINIDISK:
|
||||
case mSM_IV_OPEN_SHRINE:
|
||||
case mSM_IV_OPEN_CURATOR:
|
||||
case mSM_IV_OPEN_16:
|
||||
case mSM_IV_OPEN_PASSWORD:
|
||||
submenu->overlay->tag_ovl->chg_tag_func_proc(submenu, mTG_TABLE_ITEM, mTG_TYPE_NONE, unselected_num,
|
||||
0.0f, 0.0f);
|
||||
break;
|
||||
@@ -1992,7 +1992,7 @@ static void mIV_inventory_ovl_init(Submenu* submenu, mSM_MenuInfo_c* menu_info,
|
||||
break;
|
||||
}
|
||||
|
||||
case mSM_IV_OPEN_16: {
|
||||
case mSM_IV_OPEN_PASSWORD: {
|
||||
inv_ovl->selectable_item_bitfield = menu_info->data1;
|
||||
inv_ovl->selectable_mail_bitfield = 0;
|
||||
break;
|
||||
|
||||
+2262
-58
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user