mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
inventory ovl work
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {}
|
||||
}
|
||||
Reference in New Issue
Block a user