inventory ovl work

This commit is contained in:
Cuyler36
2024-05-17 00:54:42 -04:00
committed by Cuyler36
parent 27ea77b92a
commit ad38b86c8e
3 changed files with 720 additions and 2 deletions
+43 -2
View File
@@ -13,6 +13,36 @@ extern "C" {
#define mIV_PLAYER_JOINT_NUM 27
#define mIV_ITEM_JOINT_NUM 8
#define mIV_PLAYER_EFFECT_NUM 20
enum {
mIV_ITEM_SCALE_TYPE_NONE,
mIV_ITEM_SCALE_TYPE_SHRINK,
mIV_ITEM_SCALE_TYPE_GROW,
mIV_ITEM_SCALE_TYPE_GROW_FAST,
mIV_ITEM_SCALE_TYPE_GROW_FASTEST,
mIV_ITEM_SCALE_TYPE_PRESENT,
mIV_ITEM_SCALE_TYPE_NUM
};
enum {
mIV_PAGE_FISH_COLLECTION,
mIV_PAGE_INVENTORY,
mIV_PAGE_INSECT_COLLECTION,
mIV_PAGE_ORIGINAL_DESIGNS,
mIV_PAGE_NUM
};
typedef struct inventory_effect_s {
int timer;
xyz_t pos;
f32 scale;
f32 speed;
} mIV_pl_eff_c;
typedef mActor_name_t (*mIV_SET_COLLECT_ITEMNO_PROC)(int, int);
/* sizeof (struct inventory_ovl_s) == 0x5EC */
struct inventory_ovl_s {
@@ -42,8 +72,19 @@ struct inventory_ovl_s {
u8 release_flag;
u8 food_idx;
u8 _3E3[0x5EC - 0x3E3];
u8 item_scale_type[mPr_POCKETS_SLOT_COUNT];
u8 page_order[mIV_PAGE_NUM];
s16 page_move_timer;
s16 remove_timer;
mIV_pl_eff_c pl_eff[mIV_PLAYER_EFFECT_NUM];
mIV_SET_COLLECT_ITEMNO_PROC set_collect_itemNo_proc;
u16 item_mark_bitfield;
u16 _5E2;
s16 _5E4;
u8 _5E6[2];
u16 mail_mark_bitfield;
u8 original_flag;
u8 wc_flag;
};
extern void mIV_inventory_ovl_construct(Submenu* submenu);
+315
View File
@@ -155,6 +155,321 @@ enum {
mPlayer_INDEX_DEMO_GET_GOLDEN_AXE_WAIT
};
enum {
mPlayer_ANIM_WAIT1,
mPlayer_ANIM_WALK1,
mPlayer_ANIM_AXE1,
mPlayer_ANIM_RUN1,
mPlayer_ANIM_PUSH1,
mPlayer_ANIM_PULL1,
mPlayer_ANIM_HOLD_WAIT1,
mPlayer_ANIM_PICKUP1,
mPlayer_ANIM_LTURN1,
mPlayer_ANIM_RTURN1,
mPlayer_ANIM_GET1,
mPlayer_ANIM_GET_CHANGE1,
mPlayer_ANIM_GET_PUTAWAY1,
mPlayer_ANIM_OPEN1,
mPlayer_ANIM_PUTAWAY1,
mPlayer_ANIM_TRANS_WAIT1,
mPlayer_ANIM_TRANSFER1,
mPlayer_ANIM_UMB_OPEN1,
mPlayer_ANIM_UMBRELLA1,
mPlayer_ANIM_DASH1,
mPlayer_ANIM_RUN_SLIP1,
mPlayer_ANIM_GET_PULL1,
mPlayer_ANIM_GET_M1,
mPlayer_ANIM_KAMAE_MOVE_M1,
mPlayer_ANIM_KAMAE_WAIT_M1,
mPlayer_ANIM_KOKERU_A1,
mPlayer_ANIM_KOKERU_GETUP_A1,
mPlayer_ANIM_KOKERU_GETUP_N1,
mPlayer_ANIM_KOKERU_N1,
mPlayer_ANIM_NET1,
mPlayer_ANIM_NET_SWING1,
mPlayer_ANIM_AXE_SWING1,
mPlayer_ANIM_KAMAE_SLIP_M1,
mPlayer_ANIM_KOKERU1,
mPlayer_ANIM_KOKERU_GETUP1,
mPlayer_ANIM_SITDOWN1,
mPlayer_ANIM_SITDOWN_WAIT1,
mPlayer_ANIM_STANDUP1,
mPlayer_ANIM_PUTAWAY_M1,
mPlayer_ANIM_BED_WAIT1,
mPlayer_ANIM_INBED_L1,
mPlayer_ANIM_INBED_R1,
mPlayer_ANIM_INTRAIN1,
mPlayer_ANIM_KAGU_OPEN_D1,
mPlayer_ANIM_KAGU_OPEN_H1,
mPlayer_ANIM_KAGU_OPEN_K1,
mPlayer_ANIM_NEGAERI_L1,
mPlayer_ANIM_NEGAERI_R1,
mPlayer_ANIM_OUTBED_L1,
mPlayer_ANIM_OUTBED_R1,
mPlayer_ANIM_OUTTRAIN1,
mPlayer_ANIM_KAGU_CLOSE_D1,
mPlayer_ANIM_KAGU_CLOSE_H1,
mPlayer_ANIM_KAGU_CLOSE_K1,
mPlayer_ANIM_KAGU_WAIT_D1,
mPlayer_ANIM_KAGU_WAIT_H1,
mPlayer_ANIM_KAGU_WAIT_K1,
mPlayer_ANIM_GO_OUT_O1,
mPlayer_ANIM_GO_OUT_S1,
mPlayer_ANIM_INTO_S1,
mPlayer_ANIM_AXE_HANE1,
mPlayer_ANIM_AXE_SUKA1,
mPlayer_ANIM_HOLD_WAIT_H1,
mPlayer_ANIM_HOLD_WAIT_O1,
mPlayer_ANIM_GET_T1,
mPlayer_ANIM_GET_T2,
mPlayer_ANIM_PUTAWAY_T1,
mPlayer_ANIM_SAO1,
mPlayer_ANIM_SAO_SWING1,
mPlayer_ANIM_TURI_HIKI1,
mPlayer_ANIM_TURI_WAIT1,
mPlayer_ANIM_NOT_GET_T1,
mPlayer_ANIM_MENU_CATCH1,
mPlayer_ANIM_MENU_CHANGE1,
mPlayer_ANIM_UMB_CLOSE1,
mPlayer_ANIM_NOT_SAO_SWING1,
mPlayer_ANIM_INTRAIN_WAIT1,
mPlayer_ANIM_CLEAR_TABLE1,
mPlayer_ANIM_DIG1,
mPlayer_ANIM_FILL_UP1,
mPlayer_ANIM_NOT_DIG1,
mPlayer_ANIM_CLEAR_TABLE_L1,
mPlayer_ANIM_PICKUP_L1,
mPlayer_ANIM_SCOOP1,
mPlayer_ANIM_CONFIRM1,
mPlayer_ANIM_DIG_SUKA1,
mPlayer_ANIM_GET_D1,
mPlayer_ANIM_PUTAWAY_D1,
mPlayer_ANIM_DIG_KABU1,
mPlayer_ANIM_FILL_UP_I1,
mPlayer_ANIM_SEND_MAIL1,
mPlayer_ANIM_GET_F1,
mPlayer_ANIM_GET_PULL_F1,
mPlayer_ANIM_GET_PUTAWAY_F1,
mPlayer_ANIM_TRANS_WAIT_F1,
mPlayer_ANIM_TRANSFER_F1,
mPlayer_ANIM_SHAKE1,
mPlayer_ANIM_TIRED1,
mPlayer_ANIM_WASH1,
mPlayer_ANIM_WASH2,
mPlayer_ANIM_WASH3,
mPlayer_ANIM_WASH4,
mPlayer_ANIM_WASH5,
mPlayer_ANIM_FUKUBIKI1,
mPlayer_ANIM_OMAIRI1,
mPlayer_ANIM_SAISEN1,
mPlayer_ANIM_RETURN_MAIL1,
mPlayer_ANIM_RETURN_MAIL2,
mPlayer_ANIM_RETURN_MAIL3,
mPlayer_ANIM_EAT1,
mPlayer_ANIM_GAAAN1,
mPlayer_ANIM_GAAAN2,
mPlayer_ANIM_DERU1,
mPlayer_ANIM_GURATUKU1,
mPlayer_ANIM_MOGAKU1,
mPlayer_ANIM_OTIRU1,
mPlayer_ANIM_ZASSOU1,
mPlayer_ANIM_KNOCK1,
mPlayer_ANIM_BIKU1,
mPlayer_ANIM_HATI1,
mPlayer_ANIM_HATI2,
mPlayer_ANIM_HATI3,
mPlayer_ANIM_PUSH_YUKI1,
mPlayer_ANIM_DERU2,
mPlayer_ANIM_OTIRU2,
mPlayer_ANIM_ITAZURA1,
mPlayer_ANIM_UMB_ROT1,
mPlayer_ANIM_PICKUP_WAIT1,
mPlayer_ANIM_YATTA1,
mPlayer_ANIM_YATTA2,
mPlayer_ANIM_YATTA3,
mPlayer_ANIM_KAZA1,
mPlayer_ANIM_MOSQUITO1,
mPlayer_ANIM_MOSQUITO2,
mPlayer_ANIM_RIDE1,
mPlayer_ANIM_RIDE2,
mPlayer_ANIM_RIDEWAIT,
mPlayer_ANIM_GETOFF1,
mPlayer_ANIM_GETOFF2,
mPlayer_ANIM_UTIWA_WAIT1,
mPlayer_ANIM_UTIWA_D1,
mPlayer_ANIM_AXE_BREAK1,
mPlayer_ANIM_AXE_BREAKWAIT1,
mPlayer_ANIM_LIGHT_ON1,
mPlayer_ANIM_TAISOU1,
mPlayer_ANIM_TAISOU2_1,
mPlayer_ANIM_TAISOU2_2,
mPlayer_ANIM_TAISOU3,
mPlayer_ANIM_TAISOU4_1,
mPlayer_ANIM_TAISOU4_2,
mPlayer_ANIM_TAISOU5_1,
mPlayer_ANIM_TAISOU5_2,
mPlayer_ANIM_TAISOU6_1,
mPlayer_ANIM_TAISOU6_2,
mPlayer_ANIM_TAISOU7_1,
mPlayer_ANIM_TAISOU7_2,
mPlayer_ANIM_OMAIRI_US1,
mPlayer_ANIM_NUM
};
enum {
mPlayer_ITEM_KIND_AXE,
mPlayer_ITEM_KIND_AXE_USE_1,
mPlayer_ITEM_KIND_AXE_USE_2,
mPlayer_ITEM_KIND_AXE_USE_3,
mPlayer_ITEM_KIND_AXE_USE_4,
mPlayer_ITEM_KIND_AXE_USE_5,
mPlayer_ITEM_KIND_AXE_USE_6,
mPlayer_ITEM_KIND_AXE_USE_7,
mPlayer_ITEM_KIND_GOLD_AXE,
mPlayer_ITEM_KIND_NET,
mPlayer_ITEM_KIND_GOLD_NET,
mPlayer_ITEM_KIND_UMBRELLA00,
mPlayer_ITEM_KIND_UMBRELLA01,
mPlayer_ITEM_KIND_UMBRELLA02,
mPlayer_ITEM_KIND_UMBRELLA03,
mPlayer_ITEM_KIND_UMBRELLA04,
mPlayer_ITEM_KIND_UMBRELLA05,
mPlayer_ITEM_KIND_UMBRELLA06,
mPlayer_ITEM_KIND_UMBRELLA07,
mPlayer_ITEM_KIND_UMBRELLA08,
mPlayer_ITEM_KIND_UMBRELLA09,
mPlayer_ITEM_KIND_UMBRELLA10,
mPlayer_ITEM_KIND_UMBRELLA11,
mPlayer_ITEM_KIND_UMBRELLA12,
mPlayer_ITEM_KIND_UMBRELLA13,
mPlayer_ITEM_KIND_UMBRELLA14,
mPlayer_ITEM_KIND_UMBRELLA15,
mPlayer_ITEM_KIND_UMBRELLA16,
mPlayer_ITEM_KIND_UMBRELLA17,
mPlayer_ITEM_KIND_UMBRELLA18,
mPlayer_ITEM_KIND_UMBRELLA19,
mPlayer_ITEM_KIND_UMBRELLA20,
mPlayer_ITEM_KIND_UMBRELLA21,
mPlayer_ITEM_KIND_UMBRELLA22,
mPlayer_ITEM_KIND_UMBRELLA23,
mPlayer_ITEM_KIND_UMBRELLA24,
mPlayer_ITEM_KIND_UMBRELLA25,
mPlayer_ITEM_KIND_UMBRELLA26,
mPlayer_ITEM_KIND_UMBRELLA27,
mPlayer_ITEM_KIND_UMBRELLA28,
mPlayer_ITEM_KIND_UMBRELLA29,
mPlayer_ITEM_KIND_UMBRELLA30,
mPlayer_ITEM_KIND_UMBRELLA31,
mPlayer_ITEM_KIND_ORG_UMBRELLA01,
mPlayer_ITEM_KIND_ORG_UMBRELLA02,
mPlayer_ITEM_KIND_ORG_UMBRELLA03,
mPlayer_ITEM_KIND_ORG_UMBRELLA04,
mPlayer_ITEM_KIND_ORG_UMBRELLA05,
mPlayer_ITEM_KIND_ORG_UMBRELLA06,
mPlayer_ITEM_KIND_ORG_UMBRELLA07,
mPlayer_ITEM_KIND_ORG_UMBRELLA08,
mPlayer_ITEM_KIND_ROD,
mPlayer_ITEM_KIND_GOLD_ROD,
mPlayer_ITEM_KIND_SHOVEL,
mPlayer_ITEM_KIND_GOLD_SHOVEL,
mPlayer_ITEM_KIND_RED_BALLOON,
mPlayer_ITEM_KIND_YELLOW_BALLOON,
mPlayer_ITEM_KIND_BLUE_BALLOON,
mPlayer_ITEM_KIND_GREEN_BALLOON,
mPlayer_ITEM_KIND_PURPLE_BALLOON,
mPlayer_ITEM_KIND_BUNNY_P_BALLOON,
mPlayer_ITEM_KIND_BUNNY_B_BALLOON,
mPlayer_ITEM_KIND_BUNNY_O_BALLOON,
mPlayer_ITEM_KIND_YELLOW_PINWHEEL,
mPlayer_ITEM_KIND_RED_PINWHEEL,
mPlayer_ITEM_KIND_TIGER_PINWHEEL,
mPlayer_ITEM_KIND_GREEN_PINWHEEL,
mPlayer_ITEM_KIND_PINK_PINWHEEL,
mPlayer_ITEM_KIND_STRIPED_PINWHEEL,
mPlayer_ITEM_KIND_FLOWER_PINWHEEL,
mPlayer_ITEM_KIND_FANCY_PINWHEEL,
mPlayer_ITEM_KIND_BLUEBELL_FAN,
mPlayer_ITEM_KIND_PLUM_FAN,
mPlayer_ITEM_KIND_BAMBOO_FAN,
mPlayer_ITEM_KIND_CLOUD_FAN,
mPlayer_ITEM_KIND_MAPLE_FAN,
mPlayer_ITEM_KIND_FAN_FAN,
mPlayer_ITEM_KIND_FLOWER_FAN,
mPlayer_ITEM_KIND_LEAF_FAN,
mPlayer_ITEM_KIND_NUM /* Are there more? */
};
enum {
mPlayer_ITEM_DATA_AXE, // model
mPlayer_ITEM_DATA_AXE_B, // model
mPlayer_ITEM_DATA_AXE_C, // model
mPlayer_ITEM_DATA_GOLD_AXE, // model
mPlayer_ITEM_DATA_NET, // skeleton
mPlayer_ITEM_DATA_GOLD_NET, // skeleton
mPlayer_ITEM_DATA_NET_GET_M, // animation
mPlayer_ITEM_DATA_NET_SWING, // animation
mPlayer_ITEM_DATA_KAMAE_MAIN_M, // animation
mPlayer_ITEM_DATA_KOKERU_GETUP_N, // animation
mPlayer_ITEM_DATA_KOKERU_N, // animation
mPlayer_ITEM_DATA_SWING_WAIT, // animation
mPlayer_ITEM_DATA_YATTA_M, // animation
mPlayer_ITEM_DATA_ROD, // skeleton
mPlayer_ITEM_DATA_GOLD_ROD, // skeleton
mPlayer_ITEM_DATA_ROD_GET_T, // animation
mPlayer_ITEM_DATA_ROD_MOVE, // animation
mPlayer_ITEM_DATA_ROD_SINARI, // animation
mPlayer_ITEM_DATA_ROD_SWING, // animation
mPlayer_ITEM_DATA_ROD_WAIT, // animation
mPlayer_ITEM_DATA_ROD_NOT_SWING, // animation
mPlayer_ITEM_DATA_SHOVEL, // model
mPlayer_ITEM_DATA_GOLD_SHOVEL, // model
mPlayer_ITEM_DATA_BALLOON1, // skeleton
mPlayer_ITEM_DATA_BALLOON2, // skeleton
mPlayer_ITEM_DATA_BALLOON3, // skeleton
mPlayer_ITEM_DATA_BALLOON4, // skeleton
mPlayer_ITEM_DATA_BALLOON5, // skeleton
mPlayer_ITEM_DATA_BALLOON6, // skeleton
mPlayer_ITEM_DATA_BALLOON7, // skeleton
mPlayer_ITEM_DATA_BALLOON8, // skeleton
mPlayer_ITEM_DATA_BALLOON_WAIT, // animation
mPlayer_ITEM_DATA_BALLOON_GYAZA, // animation
mPlayer_ITEM_DATA_PINWHEEL1, // skeleton
mPlayer_ITEM_DATA_PINWHEEL2, // skeleton
mPlayer_ITEM_DATA_PINWHEEL3, // skeleton
mPlayer_ITEM_DATA_PINWHEEL4, // skeleton
mPlayer_ITEM_DATA_PINWHEEL5, // skeleton
mPlayer_ITEM_DATA_PINWHEEL6, // skeleton
mPlayer_ITEM_DATA_PINWHEEL7, // skeleton
mPlayer_ITEM_DATA_PINWHEEL8, // skeleton
mPlayer_ITEM_DATA_PINWHEEL_WAIT, // animation
mPlayer_ITEM_DATA_FAN1, // model
mPlayer_ITEM_DATA_FAN2, // model
mPlayer_ITEM_DATA_FAN3, // model
mPlayer_ITEM_DATA_FAN4, // model
mPlayer_ITEM_DATA_FAN5, // model
mPlayer_ITEM_DATA_FAN6, // model
mPlayer_ITEM_DATA_FAN7, // model
mPlayer_ITEM_DATA_FAN8, // model
mPlayer_ITEM_DATA_NUM
};
enum {
mPlayer_CREATURE_INSECT,
mPlayer_CREATURE_GYOEI,
+362
View File
@@ -0,0 +1,362 @@
#include "m_inventory_ovl.h"
#include "m_player_lib.h"
#include "ac_set_ovl_gyoei.h"
#include "ac_set_ovl_insect.h"
#include "m_room_type.h"
#include "m_common_data.h"
enum {
mIV_ANIM_WALK,
mIV_ANIM_CATCH,
mIV_ANIM_CHANGE,
mIV_ANIM_EAT,
mIV_ANIM_NUM
};
enum {
mIV_ITEM_KIND_AXE,
mIV_ITEM_KIND_NET,
mIV_ITEM_KIND_UMBRELLA,
mIV_ITEM_KIND_ROD,
mIV_ITEM_KIND_SHOVEL,
mIV_ITEM_KIND_GOLD_AXE,
mIV_ITEM_KIND_GOLD_NET,
mIV_ITEM_KIND_GOLD_ROD,
mIV_ITEM_KIND_GOLD_SHOVEL,
mIV_ITEM_KIND_RED_BALLOON,
mIV_ITEM_KIND_YELLOW_BALLOON,
mIV_ITEM_KIND_BLUE_BALLOON,
mIV_ITEM_KIND_GREEN_BALLOON,
mIV_ITEM_KIND_PURPLE_BALLOON,
mIV_ITEM_KIND_BUNNY_P_BALLOON,
mIV_ITEM_KIND_BUNNY_B_BALLOON,
mIV_ITEM_KIND_BUNNY_O_BALLOON,
mIV_ITEM_KIND_YELLOW_PINWHEEL,
mIV_ITEM_KIND_RED_PINWHEEL,
mIV_ITEM_KIND_TIGER_PINWHEEL,
mIV_ITEM_KIND_GREEN_PINWHEEL,
mIV_ITEM_KIND_PINK_PINWHEEL,
mIV_ITEM_KIND_STRIPED_PINWHEEL,
mIV_ITEM_KIND_FLOWER_PINWHEEL,
mIV_ITEM_KIND_FANCY_PINWHEEL,
mIV_ITEM_KIND_BLUEBELL_FAN,
mIV_ITEM_KIND_PLUM_FAN,
mIV_ITEM_KIND_BAMBOO_FAN,
mIV_ITEM_KIND_CLOUD_FAN,
mIV_ITEM_KIND_MAPLE_FAN,
mIV_ITEM_KIND_FAN_FAN,
mIV_ITEM_KIND_FLOWER_FAN,
mIV_ITEM_KIND_LEAF_FAN,
mIV_ITEM_KIND_AXE_USE_1,
mIV_ITEM_KIND_AXE_USE_2,
mIV_ITEM_KIND_AXE_USE_3,
mIV_ITEM_KIND_AXE_USE_4,
mIV_ITEM_KIND_AXE_USE_5,
mIV_ITEM_KIND_AXE_USE_6,
mIV_ITEM_KIND_AXE_USE_7,
mIV_ITEM_KIND_NUM
};
static int mIV_Get_pl_main_anime_index(int type) {
static u16 player_main_animation_index_table[mIV_ANIM_NUM] = {
mPlayer_ANIM_WALK1,
mPlayer_ANIM_MENU_CATCH1,
mPlayer_ANIM_MENU_CHANGE1,
mPlayer_ANIM_EAT1,
};
if (type >= mIV_ANIM_WALK && type < mIV_ANIM_NUM) {
return player_main_animation_index_table[type];
}
return -1;
}
// clang-format off
#define F(n) aSOG_FISH_TYPE_##n
/* Fish collection layout */
static u8 mIV_fish_collect_list[] = {
F(CRUCIAN_CARP), F(BROOK_TROUT), F(CARP), F(KOI), F(BARBEL_STEED), F(DACE), F(CATFISH), F(GIANT_CATFISH),
F(PALE_CHUB), F(BITTERLING), F(LOACH), F(BLUEGILL), F(SMALL_BASS), F(BASS), F(LARGE_BASS), F(GIANT_SNAKEHEAD),
F(EEL), F(FRESHWATER_GOBY), F(POND_SMELT), F(SWEETFISH), F(CHERRY_SALMON), F(RAINBOW_TROUT), F(LARGE_CHAR), F(STRINGFISH),
F(SALMON), F(GOLDFISH), F(POPEYED_GOLDFISH), F(GUPPY), F(ANGELFISH), F(PIRANHA), F(AROWANA), F(COELACANTH),
F(CRAWFISH), F(FROG), F(KILLIFISH), F(JELLYFISH), F(SEA_BASS), F(RED_SNAPPER), F(BARRED_KNIFEJAW), F(ARAPAIMA),
};
#undef F
// clang-format on
// clang-format off
#define I(n) aSOI_INSECT_TYPE_##n
/* Insect collection layout */
static u8 mIV_insect_collect_list[] = {
I(COMMON_BUTTERFLY), I(YELLOW_BUTTERFLY), I(TIGER_BUTTERFLY), I(PURPLE_BUTTERFLY), I(BROWN_CICADA), I(ROBUST_CICADA), I(WALKER_CICADA), I(EVENING_CICADA),
I(RED_DRAGONFLY), I(COMMON_DRAGONFLY), I(DARNER_DRAGONFLY), I(BANDED_DRAGONFLY), I(CRICKET), I(GRASSHOPPER), I(PINE_CRICKET), I(BELL_CRICKET),
I(LADYBUG), I(SPOTTED_LADYBUG), I(MANTIS), I(LONG_LOCUST), I(MIGRATORY_LOCUST), I(COCKROACH), I(BEE), I(FIREFLY),
I(DRONE_BEETLE), I(LONGHORN_BEETLE), I(JEWEL_BEETLE), I(DYNASTID_BEETLE), I(FLAT_STAG_BEETLE), I(SAW_STAG_BEETLE), I(MOUNTAIN_BEETLE), I(GIANT_BEETLE),
I(POND_SKATER), I(ANT), I(PILL_BUG), I(MOSQUITO), I(MOLE_CRICKET), I(SPIDER), I(SNAIL), I(BAGWORM),
};
#undef I
// clang-format on
static mActor_name_t mIV_set_collect_itemNo(int type, int page) {
if (type == mIV_PAGE_INSECT_COLLECTION) {
int insect_no = mIV_insect_collect_list[type];
int bit = mRmTp_FtrItemNo2FtrIdx(FTR_INSECT_START + FTR_NO_2_IDX(insect_no));
if (Now_Private->furniture_collected_bitfield[bit >> 5] & (1 << (bit & 31)) != 0) {
return ITM_INSECT_START + insect_no;
} else {
return EMPTY_NO;
}
} else {
int fish_no = mIV_fish_collect_list[type];
int bit = FTR_IDX_2_NO(FTR_NO_2_IDX(0x31A) + FTR_NO_2_IDX(fish_no));
if (Now_Private->furniture_collected_bitfield[bit >> 5] & (1 << (bit & 31)) != 0) {
return mNT_FishIdx2FishItemNo(fish_no);
} else {
return EMPTY_NO;
}
}
}
static int mIV_get_player_item_anime_id(void) {
mActor_name_t item = Now_Private->equipment;
if (item >= ITM_NET && item <= ITM_NET) {
return mIV_ITEM_KIND_NET;
}
if (item == ITM_AXE) {
return mIV_ITEM_KIND_AXE;
}
if (item == ITM_GOLDEN_AXE) {
return mIV_ITEM_KIND_GOLD_AXE;
}
if (item == ITM_AXE_USE_1) {
return mIV_ITEM_KIND_AXE_USE_1;
}
if (item == ITM_AXE_USE_2) {
return mIV_ITEM_KIND_AXE_USE_2;
}
if (item == ITM_AXE_USE_3) {
return mIV_ITEM_KIND_AXE_USE_3;
}
if (item == ITM_AXE_USE_4) {
return mIV_ITEM_KIND_AXE_USE_4;
}
if (item == ITM_AXE_USE_5) {
return mIV_ITEM_KIND_AXE_USE_5;
}
if (item == ITM_AXE_USE_6) {
return mIV_ITEM_KIND_AXE_USE_6;
}
if (item == ITM_AXE_USE_7) {
return mIV_ITEM_KIND_AXE_USE_7;
}
if (item >= ITM_ROD && item <= ITM_ROD) {
return mIV_ITEM_KIND_ROD;
}
if (item >= ITM_UMBRELLA_START && item <= ITM_MY_ORG_UMBRELLA7) {
return mIV_ITEM_KIND_UMBRELLA;
}
if (item >= ITM_SHOVEL && item <= ITM_SHOVEL) {
return mIV_ITEM_KIND_SHOVEL;
}
/* duplicate golden axe check */
if (item >= ITM_GOLDEN_AXE && item <= ITM_GOLDEN_AXE) {
return mIV_ITEM_KIND_GOLD_AXE;
}
if (item >= ITM_GOLDEN_NET && item <= ITM_GOLDEN_NET) {
return mIV_ITEM_KIND_GOLD_NET;
}
if (item >= ITM_GOLDEN_ROD && item <= ITM_GOLDEN_ROD) {
return mIV_ITEM_KIND_GOLD_ROD;
}
if (item >= ITM_GOLDEN_SHOVEL && item <= ITM_GOLDEN_SHOVEL) {
return mIV_ITEM_KIND_GOLD_SHOVEL;
}
if (item == ITM_RED_BALLOON) {
return mIV_ITEM_KIND_RED_BALLOON;
}
if (item == ITM_YELLOW_BALLOON) {
return mIV_ITEM_KIND_YELLOW_BALLOON;
}
if (item == ITM_BLUE_BALLOON) {
return mIV_ITEM_KIND_BLUE_BALLOON;
}
if (item == ITM_GREEN_BALLOON) {
return mIV_ITEM_KIND_GREEN_BALLOON;
}
if (item == ITM_PURPLE_BALLOON) {
return mIV_ITEM_KIND_PURPLE_BALLOON;
}
if (item == ITM_BUNNY_P_BALLOON) {
return mIV_ITEM_KIND_BUNNY_P_BALLOON;
}
if (item == ITM_BUNNY_B_BALLOON) {
return mIV_ITEM_KIND_BUNNY_B_BALLOON;
}
if (item == ITM_BUNNY_O_BALLOON) {
return mIV_ITEM_KIND_BUNNY_O_BALLOON;
}
if (item == ITM_YELLOW_PINWHEEL) {
return mIV_ITEM_KIND_YELLOW_PINWHEEL;
}
if (item == ITM_RED_PINWHEEL) {
return mIV_ITEM_KIND_RED_PINWHEEL;
}
if (item == ITM_TIGER_PINWHEEL) {
return mIV_ITEM_KIND_TIGER_PINWHEEL;
}
if (item == ITM_GREEN_PINWHEEL) {
return mIV_ITEM_KIND_GREEN_PINWHEEL;
}
if (item == ITM_PINK_PINWHEEL) {
return mIV_ITEM_KIND_PINK_PINWHEEL;
}
if (item == ITM_STRIPED_PINWHEEL) {
return mIV_ITEM_KIND_STRIPED_PINWHEEL;
}
if (item == ITM_FLOWER_PINWHEEL) {
return mIV_ITEM_KIND_FLOWER_PINWHEEL;
}
if (item == ITM_FANCY_PINWHEEL) {
return mIV_ITEM_KIND_FANCY_PINWHEEL;
}
if (item == ITM_BLUEBELL_FAN) {
return mIV_ITEM_KIND_BLUEBELL_FAN;
}
if (item == ITM_PLUM_FAN) {
return mIV_ITEM_KIND_PLUM_FAN;
}
if (item == ITM_BAMBOO_FAN) {
return mIV_ITEM_KIND_BAMBOO_FAN;
}
if (item == ITM_CLOUD_FAN) {
return mIV_ITEM_KIND_CLOUD_FAN;
}
if (item == ITM_MAPLE_FAN) {
return mIV_ITEM_KIND_MAPLE_FAN;
}
if (item == ITM_FAN_FAN) {
return mIV_ITEM_KIND_FAN_FAN;
}
if (item == ITM_FLOWER_FAN) {
return mIV_ITEM_KIND_FLOWER_FAN;
}
if (item == ITM_LEAF_FAN) {
return mIV_ITEM_KIND_LEAF_FAN;
}
return mIV_ITEM_KIND_NUM; /* No animation */
}
static int mIV_ChangeIndex_mIV_to_mPlib(s16 idx) {
static s8 data[] = {
mPlayer_ITEM_KIND_AXE,
mPlayer_ITEM_KIND_NET,
mPlayer_ITEM_KIND_UMBRELLA00,
mPlayer_ITEM_KIND_ROD,
mPlayer_ITEM_KIND_SHOVEL,
mPlayer_ITEM_KIND_GOLD_AXE,
mPlayer_ITEM_KIND_GOLD_NET,
mPlayer_ITEM_KIND_GOLD_ROD,
mPlayer_ITEM_KIND_GOLD_SHOVEL,
mPlayer_ITEM_KIND_RED_BALLOON,
mPlayer_ITEM_KIND_YELLOW_BALLOON,
mPlayer_ITEM_KIND_BLUE_BALLOON,
mPlayer_ITEM_KIND_GREEN_BALLOON,
mPlayer_ITEM_KIND_PURPLE_BALLOON,
mPlayer_ITEM_KIND_BUNNY_P_BALLOON,
mPlayer_ITEM_KIND_BUNNY_B_BALLOON,
mPlayer_ITEM_KIND_BUNNY_O_BALLOON,
mPlayer_ITEM_KIND_YELLOW_PINWHEEL,
mPlayer_ITEM_KIND_RED_PINWHEEL,
mPlayer_ITEM_KIND_TIGER_PINWHEEL,
mPlayer_ITEM_KIND_GREEN_PINWHEEL,
mPlayer_ITEM_KIND_PINK_PINWHEEL,
mPlayer_ITEM_KIND_STRIPED_PINWHEEL,
mPlayer_ITEM_KIND_FLOWER_PINWHEEL,
mPlayer_ITEM_KIND_FANCY_PINWHEEL,
mPlayer_ITEM_KIND_BLUEBELL_FAN,
mPlayer_ITEM_KIND_PLUM_FAN,
mPlayer_ITEM_KIND_BAMBOO_FAN,
mPlayer_ITEM_KIND_CLOUD_FAN,
mPlayer_ITEM_KIND_MAPLE_FAN,
mPlayer_ITEM_KIND_FAN_FAN,
mPlayer_ITEM_KIND_FLOWER_FAN,
mPlayer_ITEM_KIND_LEAF_FAN,
mPlayer_ITEM_KIND_AXE_USE_1,
mPlayer_ITEM_KIND_AXE_USE_2,
mPlayer_ITEM_KIND_AXE_USE_3,
mPlayer_ITEM_KIND_AXE_USE_4,
mPlayer_ITEM_KIND_AXE_USE_5,
mPlayer_ITEM_KIND_AXE_USE_6,
mPlayer_ITEM_KIND_AXE_USE_7,
};
if (idx >= 0 && idx < mIV_ITEM_KIND_NUM) {
return data[idx];
}
return -1;
}
static int mIV_Get_player_item_shape_index(int idx) {
if (idx >= 0 && idx < mIV_ITEM_KIND_NUM) {}
}