Merge pull request #365 from Cuyler36:ac_npc_rcn_guide2

Implement & link ac_npc_rcn_guide2
This commit is contained in:
Cuyler36
2024-06-30 22:03:36 -04:00
committed by GitHub
14 changed files with 2362 additions and 795 deletions
+10 -1
View File
@@ -160,7 +160,16 @@ typedef struct npc_draw_info_s {
/* 0x548 */ u8 _548[0x580 - 0x548];
/* 0x580 */ int animation_id;
/* 0x584 */ int texture_bank_idx;
/* 0x588 */ u8 _588[0x5B9 - 0x588];
/* 0x588 */ u8 _588[0x5B0 - 0x588];
/* 0x5B0 */ u8 draw_type;
/* 0x5B1 */ u8 _5B1;
/* 0x5B2 */ u8 _5B2;
/* 0x5B3 */ u8 _5B3;
/* 0x5B4 */ u8 _5B4;
/* 0x5B5 */ u8 _5B5;
/* 0x5B6 */ u8 _5B6;
/* 0x5B7 */ u8 _5B7;
/* 0x5B8 */ u8 _5B8;
/* 0x5B9 */ u8 _5B9;
/* 0x5BA */ u8 _5BA;
/* 0x5BB */ u8 _5BB;
+21 -1
View File
@@ -3,11 +3,32 @@
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct npc_rcn_guide2_s NPC_RCN_GUIDE2_ACTOR;
typedef void (*aNRG2_THINK_PROC)(NPC_RCN_GUIDE2_ACTOR*, GAME_PLAY*);
typedef void (*aNRG2_TALK_PROC)(NPC_RCN_GUIDE2_ACTOR*);
/* sizeof(NPC_RCN_GUIDE2_ACTOR) == 0x9BC */
struct npc_rcn_guide2_s {
/* 0x000 */ NPC_ACTOR npc_class;
/* 0x994 */ int _994;
/* 0x998 */ int think_idx;
/* 0x99C */ int next_think_idx;
/* 0x9A0 */ aNRG2_THINK_PROC think_proc;
/* 0x9A4 */ int talk_idx;
/* 0x9A8 */ int talk_proc_idx;
/* 0x9AC */ aNRG2_TALK_PROC talk_proc;
/* 0x9B0 */ int counter;
/* 0x9B4 */ int daily_speak_flag;
/* 0x9B8 */ int can_ask_again_flag;
};
extern ACTOR_PROFILE Npc_Rcn_Guide2_Profile;
#ifdef __cplusplus
@@ -15,4 +36,3 @@ extern ACTOR_PROFILE Npc_Rcn_Guide2_Profile;
#endif
#endif
+19 -1
View File
@@ -8,6 +8,25 @@
extern "C" {
#endif
typedef struct shop_design_actor_s SHOP_DESIGN_ACTOR;
typedef mActor_name_t (*aSD_UNITNUM2ITEMNO_PROC)(int ut_x, int ut_z);
typedef int (*aSD_REPORTGOODSSALE_PROC)(int ut_x, int ut_z);
typedef struct shop_design_clip_s {
SHOP_DESIGN_ACTOR* design_actor;
aSD_UNITNUM2ITEMNO_PROC unitNum2ItemNo_proc;
aSD_REPORTGOODSSALE_PROC reportGoodsSale_proc;
} aSD_Clip_c;
struct shop_design_actor_s {
ACTOR actor_class;
mActor_name_t* goods_list;
int goods_list_count;
int goods_list_max;
aSD_Clip_c clip;
};
extern ACTOR_PROFILE Shop_Design_Profile;
#ifdef __cplusplus
@@ -15,4 +34,3 @@ extern ACTOR_PROFILE Shop_Design_Profile;
#endif
#endif
+8 -1
View File
@@ -24,6 +24,7 @@
#include "ac_handOverItem.h"
#include "ac_quest_manager_clip.h"
#include "ac_shop_goods_h.h"
#include "ac_shop_design.h"
#ifdef __cplusplus
extern "C" {
@@ -43,7 +44,13 @@ typedef struct clip_s {
/* 0x038 */ void* _038;
/* 0x03C */ void* _03C;
/* 0x040 */ aNPC_Clip_c* npc_clip;
/* 0x044 */ void* _044[(0x060 - 0x044) / sizeof(void*)];
/* 0x044 */ void* _044;
/* 0x048 */ void* _048;
/* 0x04C */ void* _04C;
/* 0x050 */ void* _050;
/* 0x054 */ aSD_Clip_c* shop_design_clip;
/* 0x058 */ void* _058;
/* 0x05C */ void* _05C;
/* 0x060 */ aSM_Clip_c* shop_manekin_clip;
/* 0x064 */ void* _064;
/* 0x068 */ CLIP_NONE_PROC _068;
+1 -1
View File
@@ -49,7 +49,7 @@ enum {
enum demo_type {
mDemo_TYPE_NONE,
mDemo_TYPE_SCROLL,
mDemo_TYPE_2,
mDemo_TYPE_EXITSCENE,
mDemo_TYPE_DOOR,
mDemo_TYPE_4,
mDemo_TYPE_SCROLL2,
+5
View File
@@ -594,6 +594,10 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define FTR_DRACAENA_NORTH 0x13B2
#define FTR_DRACAENA_WEST 0x13B3
#define FTR_MANHOLE_COVER 0x1444
#define FTR_BATH_MAT 0x154C
#define HANIWA_START 0x15B0
#define FTR_HANIWA000_SOUTH (HANIWA_START + 0)
#define FTR_HANIWA000_EAST (HANIWA_START + 1)
@@ -2174,6 +2178,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define DOOR1 (DOOR0 + 1) /* 0x4001 */
#define EXIT_DOOR 0x4080
#define EXIT_DOOR1 (EXIT_DOOR + 1) /* 0x4081 */
#define NPC_HOUSE_START 0x5000
#define NPC_HOUSE000 NPC_HOUSE_START
+1 -1
View File
@@ -1368,7 +1368,7 @@ struct player_actor_s {
/* 0x138C */ int a_btn_pressed;
/* 0x1390 */ int a_btn_triggers_submenu;
/* 0x1394 */ mActor_name_t item_in_front; /* item directly in front of the player */
/* 0x1398 */ xyz_t foward_ut_pos; /* wpos of unit in front of player */
/* 0x1398 */ xyz_t forward_ut_pos; /* wpos of unit in front of player */
/* 0x13A4 */ s8 update_scene_bg_mode;
};
+4 -4
View File
@@ -223,13 +223,13 @@ extern void mQst_SetFirstJobStart(mQst_errand_c* errand);
extern void mQst_SetFirstJobChangeCloth(mQst_errand_c* errand, mActor_name_t item);
extern void mQst_SetFirstJobSeed(mQst_errand_c* errand);
extern void mQst_SetFirstJobHello(mQst_errand_c* errand);
extern void mQst_SetFirstJobFurniture(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, u8 slot);
extern void mQst_SetFirstJobFurniture(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, int slot);
extern void mQst_SetFirstJobLetter(mQst_errand_c* errand, AnmPersonalID_c* pid);
extern void mQst_SetFirstJobLetter2(mQst_errand_c* errand, AnmPersonalID_c* pid);
extern void mQst_SetFirstJobOpenQuest(mQst_errand_c* errand);
extern void mQst_SetFirstJobCarpet(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, u8 slot);
extern void mQst_SetFirstJobAxe(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, u8 slot);
extern void mQst_SetFirstJobAxe2(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, u8 slot);
extern void mQst_SetFirstJobCarpet(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, int slot);
extern void mQst_SetFirstJobAxe(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, int slot);
extern void mQst_SetFirstJobAxe2(mQst_errand_c* errand, AnmPersonalID_c* pid, mActor_name_t item, int slot);
extern void mQst_SetFirstJobNotice(mQst_errand_c* errand);
extern int mQst_GetRandom(int max);
extern void mQst_GetGoods_common(mActor_name_t* item, AnmPersonalID_c* pid, int category, mActor_name_t* exist_table,