mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Implement & link ac_quest_talk_normal_init
This commit is contained in:
+1
-1
@@ -1024,7 +1024,7 @@ config.libs = [
|
||||
Object(Matching, "actor/ac_quest_talk_greeting.c"),
|
||||
Object(Matching, "actor/ac_quest_talk_init.c"),
|
||||
Object(NonMatching, "actor/ac_quest_talk_island.c"),
|
||||
Object(NonMatching, "actor/ac_quest_talk_normal_init.c"),
|
||||
Object(Matching, "actor/ac_quest_talk_normal_init.c"),
|
||||
Object(Matching, "actor/ac_radio.c"),
|
||||
Object(Matching, "actor/ac_reserve.c"),
|
||||
Object(NonMatching, "actor/ac_reset_demo.c"),
|
||||
|
||||
@@ -195,14 +195,15 @@ struct quest_manager_regist_s {
|
||||
int animal_idx;
|
||||
};
|
||||
|
||||
typedef struct quest_manager_normal_info_s {
|
||||
#define aQMgr_NORMAL_TRADE_ITEM_NUM 5
|
||||
|
||||
typedef struct {
|
||||
Anmmem_c* memory;
|
||||
Anmplmail_c* anmplmail;
|
||||
u32 pay;
|
||||
int player_num_items; // valid items to trade
|
||||
int player_give_item_idx; // index to give item away
|
||||
mActor_name_t player_items[4]; // items which the player has in their inventory which match 'player_num_items'
|
||||
mActor_name_t selected_item;
|
||||
Anmplmail_c* mail;
|
||||
int pay;
|
||||
int item_idx;
|
||||
int free_idx;
|
||||
mActor_name_t trade_items[aQMgr_NORMAL_TRADE_ITEM_NUM];
|
||||
} aQMgr_normal_info_c;
|
||||
|
||||
typedef struct quest_manager_talk_wait_s {
|
||||
@@ -215,6 +216,8 @@ typedef struct quest_manager_choice_s {
|
||||
int talk_action;
|
||||
} aQMgr_choice_c;
|
||||
|
||||
#define aQMgr_LAST_STR_NUM 7
|
||||
|
||||
typedef int (*aQMgr_TALK_COMMON_PROC)(QUEST_MANAGER_ACTOR*, int);
|
||||
typedef void (*aQMgr_ACTOR_CLEAR_REGIST_PROC)(aQMgr_regist_c*, int);
|
||||
typedef void (*aQMgr_ACTOR_REGIST_QUEST_PROC)(QUEST_MANAGER_ACTOR*, int*, aQMgr_quest_c*, int);
|
||||
@@ -256,7 +259,7 @@ struct quest_manager_actor {
|
||||
/* 0x95C */ u8 errand_next[mPr_ERRAND_QUEST_NUM];
|
||||
/* 0x962 */ Mail_c mail;
|
||||
/* 0xA8C */ Anmmem_c* mail_memory;
|
||||
/* 0xA90 */ u8 last_strings[7];
|
||||
/* 0xA90 */ u8 last_strings[aQMgr_LAST_STR_NUM];
|
||||
/* 0xA98 */ mActor_name_t give_item;
|
||||
/* 0xA9C */ int _A9C;
|
||||
};
|
||||
|
||||
@@ -367,6 +367,8 @@ extern common_data_t common_data;
|
||||
#define SetRoomMusicBox(n) SetMusicBox(GetRoomMusicBox(), n)
|
||||
#define ClrRoomMusicBox(n) ClrMusicBox(GetRoomMusicBox(), n)
|
||||
|
||||
#define NowPrivate_GetItemCond(i) mPr_GET_ITEM_COND(Now_Private->inventory.item_conditions, i)
|
||||
|
||||
#define CLIP(n) (Common_Get(clip).n)
|
||||
#define aMR_CLIP (Common_Get(clip).my_room_clip)
|
||||
|
||||
|
||||
+28
-1
@@ -116,7 +116,7 @@ enum event_type {
|
||||
mEv_SPNPC_EVENT, /* special NPC events */
|
||||
mEv_SAVED_EVENT, /* events saved to data */
|
||||
mEv_TYPE2_EVENT, /* unused? */
|
||||
mEv_TYPE3_EVENT, /* unused? */
|
||||
mEv_TYPE_RUMOR,
|
||||
mEv_TYPE4_EVENT, /* unused? */
|
||||
mEv_DAILY_EVENT, /* checked daily always? aSL_ReportShopOpen2Event has event 3 */
|
||||
mEv_SPECL_EVENT, /* ??? secondary special npc event data? */
|
||||
@@ -173,6 +173,33 @@ enum events {
|
||||
mEv_SAVED_GATEWAY_PLR3,
|
||||
mEv_SAVED_GATEWAY_FRGN, /* Foreigner */
|
||||
|
||||
/* Rumors */
|
||||
mEv_RUMOR_NEW_YEARS_DAY = (int)mEv_SET(mEv_TYPE_RUMOR, 0),
|
||||
mEv_RUMOR_KAMAKURA,
|
||||
mEv_RUMOR_VALENTINES_DAY,
|
||||
mEv_RUMOR_GROUNDHOG_DAY,
|
||||
mEv_RUMOR_CHERRY_BLOSSOM_FESTIVAL,
|
||||
mEv_RUMOR_CHERRY_BLOSSOM_FESTIVAL2,
|
||||
mEv_RUMOR_SPRING_SPORTS_FAIR,
|
||||
mEv_RUMOR_HARVEST_FESTIVAL,
|
||||
mEv_RUMOR_KOINOBORI,
|
||||
mEv_RUMOR_SUMMER_FISHING_TOURNEY,
|
||||
mEv_RUMOR_SUMMER_FISHING_TOURNEY2,
|
||||
mEv_RUMOR_MORNING_AEROBICS,
|
||||
mEv_RUMOR_MORNING_AEROBICS2,
|
||||
mEv_RUMOR_FIREWORKS_SHOW,
|
||||
mEv_RUMOR_FIREWORKS_SHOW2, // reminder it happens weekly, unused in AC
|
||||
mEv_RUMOR_METEOR_SHOWER,
|
||||
mEv_RUMOR_HARVEST_MOON_DAY,
|
||||
mEv_RUMOR_FALL_SPORTS_FAIR,
|
||||
mEv_RUMOR_MUSHROOM_SEASON,
|
||||
mEv_RUMOR_TALK_MUSHROOM_SEASON,
|
||||
mEv_RUMOR_HALLOWEEN,
|
||||
mEv_RUMOR_FALL_FISHING_TOURNEY,
|
||||
mEv_RUMOR_FALL_FISHING_TOURNEY2,
|
||||
mEv_RUMOR_TOY_DAY,
|
||||
mEv_RUMOR_NEW_YEARS_EVE_COUNTDOWN,
|
||||
|
||||
mEv_DAILY_0 = (int)mEv_SET(mEv_DAILY_EVENT, 0), /* unused */
|
||||
mEv_DAILY_1, /* unused */
|
||||
mEv_DAILY_2, /* unused */
|
||||
|
||||
@@ -349,6 +349,7 @@ extern void mMsg_sound_unset_voice_silent(mMsg_Window_c* msg_p, int update_mode)
|
||||
#define mMsg_UNSET_LOCKCONTINUE() mMsg_Unset_LockContinue(mMsg_Get_base_window_p())
|
||||
#define mMsg_SET_FORCENEXT() mMsg_Set_ForceNext(mMsg_Get_base_window_p())
|
||||
#define mMsg_SET_CANCELNORMALCONTINUE() mMsg_Set_CancelNormalContinue(mMsg_Get_base_window_p())
|
||||
#define mMsg_SET_ITEM_STR(str_no, str, str_len) mMsg_Set_item_str(mMsg_Get_base_window_p(), str_no, str, str_len)
|
||||
#define mMsg_SET_ITEM_STR_ART(str_no, str, str_len, item_no) \
|
||||
mMsg_Set_item_str_art(mMsg_Get_base_window_p(), str_no, str, str_len, mIN_get_item_article(item_no))
|
||||
#define mMsg_SET_FREE_STR(str_no, str, str_len) mMsg_Set_free_str(mMsg_Get_base_window_p(), str_no, str, str_len)
|
||||
@@ -370,6 +371,7 @@ extern void mMsg_sound_unset_voice_silent(mMsg_Window_c* msg_p, int update_mode)
|
||||
|
||||
#define mMsg_REQUEST_MAIN_DISAPPEAR() mMsg_request_main_disappear(mMsg_Get_base_window_p())
|
||||
#define mMsg_REQUEST_MAIN_DISAPPEAR_WAIT_TYPE1() mMsg_request_main_disappear_wait_type1(mMsg_Get_base_window_p())
|
||||
#define mMsg_REQUEST_MAIN_DISAPPEAR_WAIT_TYPE2() mMsg_request_main_disappear_wait_type2(mMsg_Get_base_window_p())
|
||||
#define mMsg_REQUEST_MAIN_APPEAR() mMsg_request_main_appear(mMsg_Get_base_window_p())
|
||||
#define mMsg_REQUEST_MAIN_APPEAR_WAIT_TYPE1() mMsg_request_main_appear_wait_type1(mMsg_Get_base_window_p());
|
||||
#define mMsg_REQUEST_MAIN_APPEAR_WAIT_TYPE2() mMsg_request_main_appear_wait_type2(mMsg_Get_base_window_p());
|
||||
|
||||
@@ -212,6 +212,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define WISP_COUNT(n) (ITEM_IS_WISP(n) ? (1 + (n) - ITM_SPIRIT0) : 0)
|
||||
|
||||
#define ITEM_IS_INSECT(n) ((n) >= ITM_INSECT_START && (n) < ITM_INSECT_END)
|
||||
#define ITEM_IS_FISH(n) ((n) >= ITM_FISH_START && (n) <= ITM_FISH_END)
|
||||
#define ITEM_IS_WISP(n) ((n) >= ITM_SPIRIT0 && (n) <= ITM_SPIRIT4)
|
||||
#define ITEM_IS_PAPER(n) ((n) >= ITM_PAPER_START && (n) <= (ITM_PAPER_END - 1))
|
||||
#define ITEM_IS_CLOTH(n) ((n) >= ITM_CLOTH_START && (n) < ITM_CLOTH_END)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -2491,7 +2491,7 @@ extern int mEv_spread_rumor(int type) {
|
||||
|
||||
extern int mEv_get_rumor() {
|
||||
if (n_rumor != 0) {
|
||||
return rumor_table[gamePT->frame_counter % n_rumor] | mEv_SET(mEv_TYPE3_EVENT, 0);
|
||||
return rumor_table[gamePT->frame_counter % n_rumor] | mEv_SET(mEv_TYPE_RUMOR, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1282,6 +1282,7 @@ def generate_objdiff_config(
|
||||
"*.yml",
|
||||
"*.txt",
|
||||
"*.json",
|
||||
"*.c_inc",
|
||||
],
|
||||
"units": [],
|
||||
"progress_categories": [],
|
||||
|
||||
Reference in New Issue
Block a user