mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-07-09 04:30:51 -04:00
Merge pull request #365 from Cuyler36:ac_npc_rcn_guide2
Implement & link ac_npc_rcn_guide2
This commit is contained in:
+10
-1
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user