Link ac_npc_shop_master, implement & link ac_npc_mamedanuki

This commit is contained in:
Cuyler36
2024-12-28 06:05:31 -05:00
parent 721de07972
commit 59aee0fafa
12 changed files with 2052 additions and 189 deletions
+14 -2
View File
@@ -2,12 +2,25 @@
#define AC_NPC_MAMEDANUKI_H
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#include "m_private.h"
#include "ac_npc_shop_common.h"
#ifdef __cplusplus
extern "C" {
#endif
enum {
aNMD_ZONE_0,
aNMD_ZONE_1,
aNMD_ZONE_2,
aNMD_ZONE_3,
aNMD_ZONE_NUM
};
typedef NPC_SHOP_COMMON_ACTOR NPC_MAMEDANUKI_ACTOR;
extern ACTOR_PROFILE Npc_Mamedanuki_Profile;
#ifdef __cplusplus
@@ -15,4 +28,3 @@ extern ACTOR_PROFILE Npc_Mamedanuki_Profile;
#endif
#endif
+19 -76
View File
@@ -5,6 +5,7 @@
#include "ac_npc.h"
#include "m_mail_password_check.h"
#include "m_font.h"
#include "m_player_lib.h"
#ifdef __cplusplus
extern "C" {
@@ -22,79 +23,7 @@ extern "C" {
#define aNSC_LOAN_STATUE 0
#define aNSC_LOAN_BASEMENT 49800
enum aNSC_action {
aNSC_ACTION_EMPTY,
aNSC_ACTION_SAY_HELLO_APPROACH,
aNSC_ACTION_SAY_HELLO_END_WAIT,
aNSC_ACTION_03_SAY_HELLO_END_WAIT,
aNSC_ACTION_CHECK_ROOF_COL_ORDER,
aNSC_ACTION_CHECK_ROOF_COL_ORDER2,
aNSC_ACTION_CHECK_COL_CHG_OR_MAKE_BASEMENT,
aNSC_ACTION_PRESENT_BALLOON_START_WAIT,
aNSC_ACTION_PRESENT_BALLOON_TRANS_MOVE,
aNSC_ACTION_PRESENT_BALLOON_TRANS_TAKEOUT,
aNSC_ACTION_PRESENT_BALLOON_TRANS_WAIT,
aNSC_ACTION_PRESENT_BALLOON_END_WAIT,
aNSC_ACTION_REQUEST_Q_START_WAIT,
aNSC_ACTION_REQUEST_Q_ANSWER_WAIT,
aNSC_ACTION_REQUEST_Q_ANSWER_WAIT2,
aNSC_ACTION_REQUEST_Q_END_WAIT,
aNSC_ACTION_ANSWER_BUY_ITEM,
aNSC_ACTION_BUY_MENU_OPEN_WAIT,
aNSC_ACTION_BUY_MENU_CLOSE_WAIT,
aNSC_ACTION_MSG_WIN_OPEN_WAIT,
aNSC_ACTION_BUY_SUM_CHECK,
aNSC_ACTION_BUY_CHECK,
aNSC_ACTION_BUY_AFTER_SERVICE,
aNSC_ACTION_BUY_CONTINUE_CHECK,
aNSC_ACTION_RECEIVE_CHECK,
aNSC_ACTION_19_ANSWER_BUY_ITEM,
aNSC_ACTION_0x1a_UNUSED,
aNSC_ACTION_0x1b_UNUSED,
aNSC_ACTION_MSG_WIN_OPEN_WAIT2,
aNSC_ACTION_ORDER_CHECK,
aNSC_ACTION_SELL_CHECK_BEFORE,
aNSC_ACTION_SELL_CHECK,
aNSC_ACTION_SELL_ANSWER0,
aNSC_ACTION_21_REQUEST_Q_END_WAIT,
aNSC_ACTION_SELL_ITEM_WITHOUT_TICKET,
aNSC_ACTION_SELL_ITEM_WITH_TICKET,
aNSC_ACTION_SELL_ITEM_POCKETS_FULL,
aNSC_ACTION_SELL_ITEM_INSUFICIENT_FUNDS,
aNSC_ACTION_SHOW_ITEM_CHECK,
aNSC_ACTION_CHG_CLOTH_START_WAIT,
aNSC_ACTION_CHG_CLOTH_END_WAIT,
aNSC_ACTION_PW_ENTRY_SEND_ADDR_START_WAIT,
aNSC_ACTION_2A_BUY_MENU_OPEN_WAIT,
aNSC_ACTION_0x2b_UNUSED,
aNSC_ACTION_PW_MSG_WIN_OPEN_WAIT,
aNSC_ACTION_PW_SEND_ADDR_CHECK,
aNSC_ACTION_PW_SEL_ITEM_START_WAIT,
aNSC_ACTION_2F_BUY_MENU_OPEN_WAIT,
aNSC_ACTION_0x30_UNUSED,
aNSC_ACTION_0x31_UNUSED,
aNSC_ACTION_PW_SEND_CHECK,
aNSC_ACTION_PW_RETRY_SEL_ITEM_CHECK,
aNSC_ACTION_PC_INPUT_PW_START_WAIT,
aNSC_ACTION_35_BUY_MENU_OPEN_WAIT,
aNSC_ACTION_0x36_UNUSED,
aNSC_ACTION_PC_MSG_WIN_OPEN_WAIT,
aNSC_ACTION_PC_RETRY_INPUT_PW_CHECK,
aNSC_ACTION_PC_PRESENT_START_WAIT,
aNSC_ACTION_PC_PRESENT_TRANS_TAKEOUT,
aNSC_ACTION_PC_PRESENT_TRANS_WAIT,
aNSC_ACTION_PC_PRESENT_END_WAIT,
aNSC_ACTION_WAIT,
aNSC_ACTION_0x3e_WAIT,
aNSC_ACTION_WALK_PL_OTHER_ZONE,
aNSC_ACTION_0x40_WAIT,
aNSC_ACTION_0x41_WALK_PL_OTHER_ZONE,
aNSC_ACTION_TURN,
aNSC_ACTION_GOODBYE_WAIT,
aNSC_ACTION_SAY_GOODBYE,
aNSC_ACTION_EXIT_WAIT,
aNSC_ACTION_NUM
};
#define aNSC_PLAYER_DISTANCE (f32)60.0
enum aNSC_msg_no {
aNSC_MSG_WAIT = -0x1,
@@ -122,7 +51,7 @@ enum aNSC_msg_no {
aNSC_MSG_CANCEL,
aNSC_MSG_START_CALL_NORMAL,
aNSC_MSG_INTERACT_START,
aNSC_MSG_INTERACT_CANCEl,
aNSC_MSG_INTERACT_CANCEL,
aNSC_MSG_KABU_INFO,
aNSC_MSG_SELL_START,
aNSC_MSG_SELL_OFFER,
@@ -157,6 +86,11 @@ enum aNSC_msg_no {
aNSC_MSG_SELL_QUEST,
aNSC_MSG_JUNK_ACCEPT,
aNSC_MSG_JUNK_CANCEL,
aNSC_MSG_3B,
aNSC_MSG_3C,
aNSC_MSG_3D,
aNSC_MSG_3E,
aNSC_MSG_3F,
aNSC_MSG_SELL_SHOVEL = 0x64,
aNSC_MSG_SELL_NET,
aNSC_MSG_SELL_ROD,
@@ -199,7 +133,6 @@ enum aNSC_msg_no {
aNSC_MSG_PSWD_GOOD_MAGAZINE_2,
aNSC_MSG_GIFT_OUT,
aNSC_MSG_PSWD_BAD,
aNSC_MSG_TAKE_OFF_HANDS= 0x108a
};
enum aNSC_wait_type {
@@ -269,6 +202,13 @@ enum aNSC_request_show_type {
aNSC_REQUEST_SHOW_TYPE_CARPET
};
enum {
aNSC_DAY_NORMAL,
aNSC_DAY_FUKUBIKI,
aNSC_DAY_NUM
};
typedef struct aNSC_animation_data_s {
int anim;
int talk_flag;
@@ -282,6 +222,8 @@ typedef void (*aNSC_INIT_PROC)(NPC_SHOP_COMMON_ACTOR*, GAME_PLAY*);
typedef int (*aNSC_PC_CHECK_PASSWORD_PROC)(mMpswd_password_c*);
typedef void (*aNSC_ITEM_SELL_PROC)(NPC_SHOP_COMMON_ACTOR*, mActor_name_t);
typedef void (*aNSC_ACTION_PROC)(NPC_SHOP_COMMON_ACTOR*, GAME_PLAY*);
typedef void (*aNSC_TALK_PROC)(NPC_SHOP_COMMON_ACTOR*, GAME_PLAY*);
typedef void (*aNSC_TALK_REQ_PROC)(NPC_SHOP_COMMON_ACTOR*, PLAYER_ACTOR*);
struct npc_shop_common_actor_s {
/* 0x000 */ NPC_ACTOR npc_class;
@@ -292,13 +234,14 @@ struct npc_shop_common_actor_s {
/* 0x9A2 */ u8 zone;
/* 0x9A3 */ u8 next_zone;
/* 0x9A4 */ u8 player_zone;
/* 0x9A5 */ u8 sale_type;
/* 0x9A6 */ s16 player_angle;
/* 0x9A8 */ u32 money;
/* 0x9AC */ u32 value;
/* 0x9B0 */ u32 counter;
/* 0x9B4 */ mActor_name_t sell_item;
/* 0x9B6 */ u8 ut_x;
/* 0x9B7 */ u8 ut_y;
/* 0x9B7 */ u8 ut_z;
/* 0x9B8 */ u8 is_selling;
/* 0x9B9 */ u8 _9B9;
/* 0x9BA */ mActor_name_t order_item;
-2
View File
@@ -21,8 +21,6 @@ typedef NPC_SHOP_COMMON_ACTOR NPC_SHOP_MASTER_ACTOR;
extern ACTOR_PROFILE Npc_Shop_Master_Profile;
#define aNSC_PLAYER_DISTANCE (f32)60.0
#ifdef __cplusplus
extern "C" {
#endif
+1
View File
@@ -541,6 +541,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define ITEM_IS_MYUMBRELLA_TOOL(item) ((item) >= ITM_MY_ORG_UMBRELLA0 && (item) <= ITM_MY_ORG_UMBRELLA7)
#define ITEM_IS_SCOOP(item) ((item) >= ITM_SHOVEL && (item) <= ITM_SHOVEL)
#define ITEM_IS_GOLD_SCOOP(item) ((item) >= ITM_GOLDEN_SHOVEL && (item) <= ITM_GOLDEN_SHOVEL)
#define ITEM_IS_PAINT(item) ((item) >= ITM_RED_PAINT && (item) <= ITM_BROWN_PAINT)
#define BG_CATEGORY 0
#define ENV_CATEGORY 8