Implement & link ac_handOverItem

This commit is contained in:
Cuyler36
2023-12-17 12:35:40 -05:00
parent 6b09d09317
commit cd3c32f918
8 changed files with 1359 additions and 7 deletions
+21 -3
View File
@@ -3,6 +3,7 @@
#include "types.h"
#include "m_actor.h"
#include "ac_tools.h"
#include "m_scene.h"
#ifdef __cplusplus
@@ -26,9 +27,16 @@ enum {
aHOI_REQUEST_NUM
};
enum {
aHOI_NOT_PRESENT,
aHOI_PRESENT,
aHOI_PRESENT_TYPE_NUM
};
typedef struct hand_over_item_actor_s HANDOVERITEM_ACTOR;
typedef ACTOR* (*aHOI_BIRTH_PROC)(mActor_name_t, int, int);
typedef ACTOR* (*aHOI_BIRTH_PROC)(mActor_name_t, int, int, ACTOR*);
typedef ACTOR* (*aHOI_CHG_MASTER_PROC)(ACTOR*);
typedef int (*aHOI_CHG_REQUEST_MODE_PROC)(ACTOR*, int);
typedef void (*aHOI_REBUILD_DMA_PROC)(Object_Exchange_c*, ACTOR*); /* yoinked from DnM, unused in AC */
@@ -49,8 +57,18 @@ typedef struct hand_over_item_clip_s {
} aHOI_Clip_c;
struct hand_over_item_actor_s {
ACTOR actor_class;
u8 _174[0x1F4 - 0x174]; /* TODO */
TOOLS_ACTOR tools_class;
int mode;
f32 anm_cnt;
xyz_t trans;
f32 scale;
u8 trans_flag;
u8 item_type;
u8 draw_type;
u8 se_set_flag;
int item;
int gyo_type;
int gyo_flag;
};
extern ACTOR_PROFILE HandOverItem_Profile;
+10 -4
View File
@@ -169,11 +169,17 @@ extern s16 actor_profile_table[];
extern s16 props_profile_table[];
extern u8 npc_looks_table[];
extern int mNT_check_unknown(mActor_name_t item_no);
extern int FGTreeType_check(mActor_name_t tree);
extern mActor_name_t bg_item_fg_sub_tree_grow(mActor_name_t tree, int past_days, int check_plant);
extern mActor_name_t bg_item_fg_sub_dig2take_conv(mActor_name_t item);
extern int mNT_get_itemTableNo(mActor_name_t item);
extern mActor_name_t mNT_FishIdx2FishItemNo(int idx);
extern mActor_name_t bg_item_fg_sub(mActor_name_t item, s16 flag);
extern mActor_name_t bg_item_fg_sub_tree_grow(mActor_name_t item, int past_days, int check_plant);
extern mActor_name_t bg_item_fg_sub_dig2take_conv(mActor_name_t item);
extern mNT_offset_table_c* obj_hight_table_item0_nogrow(mActor_name_t item);
extern int FGTreeType_check(mActor_name_t tree);
extern int mNT_ItIsStump(mActor_name_t actor);
extern int mNT_ItIsStoneCoin10(mActor_name_t actor);
extern int mNT_ItIsReserveDummy(mActor_name_t actor);
extern int mNT_check_unknown(mActor_name_t item_no);
/* Retrieve the item actor's category */
#define ITEM_NAME_GET_TYPE(n) (((n) & 0xF000) >> 12)
+1
View File
@@ -48,6 +48,7 @@ extern void mPlib_Load_PlayerTexAndPallet(void* tex_p, void* pal_p, int idx);
extern void mPlib_request_main_give_from_submenu(mActor_name_t disp_item, int submenu_ovl, int present_flag, int counter_flag);
extern int mPlib_Check_tree_shaken_big(const xyz_t* pos);
extern int mPlib_Check_tree_shaken_little(const xyz_t* pos);
extern int mPlib_request_main_recieve_wait_type1(GAME* game, mActor_name_t item, int counter_flag);
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();