Merge pull request #341 from Cuyler36/m_inventory_ovl

Implement & link m_inventory_ovl
This commit is contained in:
Cuyler36
2024-05-19 13:18:25 -04:00
committed by GitHub
14 changed files with 2594 additions and 25 deletions
+5
View File
@@ -970,6 +970,11 @@ m_hboard_ovl.c:
.text: [0x805E0AC8, 0x805E1398]
.rodata: [0x8064B480, 0x8064B4B8]
.data: [0x806CD3B0, 0x806CD3C8]
m_inventory_ovl.c:
.text: [0x805E1398, 0x805E4DFC]
.rodata: [0x8064B4B8, 0x8064B5C8]
.data: [0x806CD3C8, 0x806CD7B8]
.bss: [0x8133FAE0, 0x813400D0]
m_map_ovl.c:
.text: [0x805E5EFC, 0x805E7A54]
.rodata: [0x8064B628, 0x8064B6B0]
+5
View File
@@ -38,6 +38,9 @@ typedef enum audio_sound_effects {
NA_SE_25 = 0x25,
NA_SE_26 = 0x26,
NA_SE_MENU_PAUSE = 0x30,
NA_SE_31 = 0x31,
NA_SE_DRAWER_SHUT = 0x3A,
NA_SE_ITEM_GET = 0x40,
@@ -78,6 +81,8 @@ typedef enum audio_sound_effects {
NA_SE_ROD_STROKE = 0x109,
NA_SE_ROD_BACK,
NA_SE_EAT = 0x113,
NA_SE_WEAR = 0x11C,
NA_SE_SCOOP1 = 0x11E,
+4 -1
View File
@@ -4,6 +4,9 @@
#include "types.h"
#define SQRT_OF_2_F 1.41421356237309504880f
#define SQRT_OF_3_F 1.73205080756887729353f
#define SQRT_3_OVER_3_F (SQRT_OF_3_F / 3.0f)
#define M_PI 3.14159265358979323846f
@@ -15,4 +18,4 @@ f32 fatan2(f32, f32);
f64 fsqrt(f32);
f32 facos(f32);
#endif
#endif
+11
View File
@@ -9,6 +9,17 @@
extern "C" {
#endif
enum {
mBGM_PAUSE_0,
mBGM_PAUSE_1,
mBGM_PAUSE_2,
mBGM_PAUSE_NOTICE,
mBGM_PAUSE_4,
mBGM_PAUSE_STOP,
mBGM_PAUSE_NUM
};
extern void mBGMPsComp_make_ps_fanfare(u8 bgm_num, u16 stop_type);
extern void mBGMPsComp_make_ps_lost_fanfare(u8 bgm_num, u16 stop_type);
extern void mBGMPsComp_make_ps_wipe(u16 stop_type);
+65 -7
View File
@@ -11,13 +11,59 @@
extern "C" {
#endif
#define mIV_PLAYER_JOINT_NUM 27
#define mIV_PLAYER_JOINT_NUM (mPlayer_JOINT_NUM + 1)
#define mIV_ITEM_JOINT_NUM 8
#define mIV_PLAYER_EFFECT_NUM 20
#define mIV_COLLECT_NUM 40
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_NUM
};
enum {
mIV_ANIM_WALK,
mIV_ANIM_CATCH,
mIV_ANIM_CHANGE,
mIV_ANIM_EAT,
mIV_ANIM_NUM
};
enum {
mIV_STRING_LAND_NAME,
mIV_STRING_PLAYER_NAME,
mIV_STRING_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 {
cKF_SkeletonInfo_R_c player_keyframe0;
cKF_SkeletonInfo_R_c player_keyframe1;
cKF_SkeletonInfo_R_c player_main_keyframe;
cKF_SkeletonInfo_R_c player_com_keyframe;
s_xyz player_work[mIV_PLAYER_JOINT_NUM];
s_xyz player_morph[mIV_PLAYER_JOINT_NUM];
@@ -30,8 +76,8 @@ struct inventory_ovl_s {
u8 _374[0x3BC - 0x374];
u16 selected_item_bitfield;
u16 selected_mail_bitfield;
u16 selectable_item_bitfield;
u16 selectable_mail_bitfield;
u32 disp_money;
int disp_money_change_frames;
@@ -42,8 +88,20 @@ 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];
u8 next_page_id;
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);
+337
View File
@@ -22,6 +22,8 @@ typedef struct player_actor_s PLAYER_ACTOR;
#define mPlayer_FORCE_POSITION_ANGLE_ROTY (1 << 5)
#define mPlayer_FORCE_POSITION_ANGLE_ROTZ (1 << 6)
#define mPlayer_JOINT_NUM 26
enum {
mPlayer_ADDRESSABLE_TRUE,
mPlayer_ADDRESSABLE_FALSE_MOVEMENT,
@@ -155,6 +157,341 @@ 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_UMBRELLA00,
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_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_ITEM_DATA_TYPE_GFX,
mPlayer_ITEM_DATA_TYPE_SKELETON,
mPlayer_ITEM_DATA_TYPE_NET_ANIMATION,
mPlayer_ITEM_DATA_TYPE_ROD_ANIMATION,
mPlayer_ITEM_DATA_TYPE_BALLOON_ANIMATION,
mPlayer_ITEM_DATA_TYPE_PINWHEEL_ANIMATION,
mPlayer_ITEM_DATA_TYPE_NUM
};
enum {
mPlayer_PART_TABLE_NORMAL,
mPlayer_PART_TABLE_AXE,
mPlayer_PART_TABLE_PICK_UP,
mPlayer_PART_TABLE_NET,
mPlayer_PART_TABLE_NUM
};
enum {
mPlayer_CREATURE_INSECT,
mPlayer_CREATURE_GYOEI,
+18
View File
@@ -4,6 +4,7 @@
#include "types.h"
#include "m_player.h"
#include "m_private_h.h"
#include "c_keyframe.h"
#ifdef __cplusplus
extern "C" {
@@ -79,6 +80,23 @@ extern int mPlib_Check_StopNet(xyz_t* net_pos);
extern int mPlib_Check_DigScoop(xyz_t* scoop_pos);
extern int mPlib_Check_tree_shaken(const xyz_t* pos);
extern int mPlib_Check_VibUnit_OneFrame(const xyz_t* pos);
extern int mPlib_Get_BasicItemShapeIndex_fromItemKind(int item_kind);
extern u8 mPlib_Get_Item_DataPointerType(int idx);
extern void* mPlib_Get_Item_DataPointer(int idx);
extern int mPlib_Get_BasicPlayerAnimeIndex_fromItemKind(int item_kind);
extern cKF_Animation_R_c* mPlib_Get_Pointer_Animation(int anim_idx);
extern int mPlib_Get_BasicPartTableIndex_fromAnimeIndex(int anim_idx);
extern int mPlib_Get_BasicItemAnimeIndex_fromItemKind(int item_kind);
extern void mPlib_DMA_player_Part_Table(s8* part_table_p, int idx);
extern cKF_Skeleton_R_c* mPlib_get_player_mdl_p(void);
extern u8* mPlib_Get_PlayerEyeTexAnimation_p(int anim_idx);
extern u8* mPlib_Get_PlayerMouthTexAnimation_p(int anim_idx);
extern u8* mPlib_Get_eye_tex_p(int idx);
extern u8* mPlib_Get_mouth_tex_p(int idx);
extern u8* mPlib_get_player_tex_p(GAME* game);
extern u16* mPlib_get_player_pallet_p(GAME* game);
extern u16* mPlib_get_player_face_pallet_p(GAME* game);
extern int mPlib_Check_scoop_after(GAME* game, xyz_t* pos, mActor_name_t* item, ACTOR** hit_actor, int gold_shovel);
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();
+8 -1
View File
@@ -103,7 +103,7 @@ enum {
mSM_IV_OPEN_SHRINE,
mSM_IV_OPEN_12,
mSM_IV_OPEN_EXCHANGE,
mSM_IV_OPEN_14,
mSM_IV_OPEN_CPMAIL,
mSM_IV_OPEN_CURATOR,
mSM_IV_OPEN_16,
@@ -118,6 +118,13 @@ enum {
mSM_IV_ITEM_NUM
};
enum {
mSM_HANIWA_OPEN_ENTRUST,
mSM_HANIWA_OPEN_TAKE,
mSM_HANIWA_OPEN_NUM
};
enum {
mSM_BD_OPEN_WRITE,
mSM_BD_OPEN_READ,
+9 -7
View File
@@ -28,6 +28,7 @@
#include "m_catalog_ovl_h.h"
#include "m_hand_ovl_h.h"
#include "m_inventory_ovl_h.h"
#include "m_player.h"
#ifdef __cplusplus
extern "C" {
@@ -65,14 +66,15 @@ typedef struct submenu_ovl_dlftbl_s {
int in_ram_flag;
} mSM_Ovl_dlftbl_c;
// TODO: fill this out
typedef struct submenu_segment_s {
int _00;
s16 _04;
s16 _06;
s16 _08;
s16 _0A;
u8 _0C[0x30 - 0x0C];
s16 player_main_anime_idx;
s16 player_item_anime_idx;
s16 change_player_main_anime_idx;
s16 player_anime_timer;
s16 player_umbrella_bank_idx;
s16 umbrella_ids[2];
s8 player_part_table[mPlayer_JOINT_NUM + 1];
int dlftbl_loaded_num;
mSM_Ovl_dlftbl_c* dlftbl_loaded_tbl[8];
} mSM_Segment_c;
@@ -91,7 +93,7 @@ typedef struct submenu_menu_info_s {
f32 speed[2];
char* _28;
int _2C;
int open_flag;
int next_proc_status;
s16 move_drt;
+1 -1
View File
@@ -2653,7 +2653,7 @@ extern void mBGM_reset() {
}
if (ps_comp->pause_state != 0) {
mBGMPsComp_pause(5);
mBGMPsComp_pause(mBGM_PAUSE_STOP);
}
mBGMDemo_ct(&bgm->demo);
+2 -2
View File
@@ -527,8 +527,8 @@ static void mCL_move_Move(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
static void mCL_move_Play(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
mCL_Ovl_c* catalog_ovl = submenu->overlay->catalog_ovl;
if (menu_info->_2C == FALSE) {
menu_info->_2C = TRUE;
if (menu_info->open_flag == FALSE) {
menu_info->open_flag = TRUE;
submenu->overlay->tag_ovl->chg_tag_func_proc(submenu, 14, 0, 0, 0.0f, 0.0f);
} else if (catalog_ovl->page_timer != 0) {
catalog_ovl->page_timer--;
+6 -4
View File
@@ -310,8 +310,8 @@ static void mHD_drop_item(Submenu* submenu, mTG_tag_c* tag, mActor_name_t* item,
submenu->overlay->tag_ovl->init_tag_data_item_win_proc(submenu);
if (overlay->segment._04 == 1) {
overlay->segment._08 = 0;
if (overlay->segment.player_main_anime_idx == mIV_ANIM_CATCH) {
overlay->segment.change_player_main_anime_idx = mIV_ANIM_WALK;
}
}
@@ -515,7 +515,8 @@ static void mHD_open_end_proc_item_type3(Submenu* submenu, int idx, int table) {
int category = ITEM_NAME_GET_CAT(item);
if (item == RSV_CLOTH || ITEM_IS_CLOTH(item)) {
if (cKF_FrameControl_passCheck_now(&submenu->overlay->inventory_ovl->player_keyframe0.frame_control, 36.0f)) {
if (cKF_FrameControl_passCheck_now(&submenu->overlay->inventory_ovl->player_main_keyframe.frame_control,
36.0f)) {
cloth_p = &Now_Private->cloth;
mHD_drop_item(submenu, tag, &cloth_p->item, NULL);
@@ -768,7 +769,8 @@ static void mHD_sasu2_move(Submenu* submenu) {
int category = ITEM_NAME_GET_CAT(hand_ovl->info.item);
if (hand_ovl->info.item == RSV_CLOTH || ITEM_IS_CLOTH(hand_ovl->info.item)) {
if (cKF_FrameControl_passCheck_now(&submenu->overlay->inventory_ovl->player_keyframe0.frame_control, 36.0f)) {
if (cKF_FrameControl_passCheck_now(&submenu->overlay->inventory_ovl->player_main_keyframe.frame_control,
36.0f)) {
mPr_cloth_c* cloth_p = &Now_Private->cloth;
u16 cloth_idx;
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2099,7 +2099,7 @@ static void mSM_set_new_start_data(Submenu* submenu) {
menu->data3 = submenu->param3;
menu->move_flag = FALSE;
if (type == mSM_OVL_INVENTORY && submenu->param0 == mSM_IV_OPEN_14) {
if (type == mSM_OVL_INVENTORY && submenu->param0 == mSM_IV_OPEN_CPMAIL) {
menu->position[0] = -300.0f;
}
@@ -2209,7 +2209,7 @@ static void mSM_return_func(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
}
}
menu_info->_2C = FALSE;
menu_info->open_flag = FALSE;
menu_info->pre_menu_type = mSM_OVL_NONE;
menu_info->next_menu_type = mSM_OVL_NONE;
menu_info->proc_status = mSM_OVL_PROC_MOVE;