diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 66f5b54c..4287dc06 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -555,8 +555,8 @@ fn_80016700 = .text:0x80016700; // type:function size:0x160 fn_80016860 = .text:0x80016860; // type:function size:0x28 createLightTextures = .text:0x80016890; // type:function size:0x98 fn_80016930 = .text:0x80016930; // type:function size:0x2C -fn_80016960 = .text:0x80016960; // type:function size:0x130 -fn_80016A90 = .text:0x80016A90; // type:function size:0xCC +fn_80016960__3d3dFRC7mVec3_cRC7mVec3_c = .text:0x80016960; // type:function size:0x130 +fn_80016A90__3d3dFRC7mVec3_c = .text:0x80016A90; // type:function size:0xCC fn_80016B60 = .text:0x80016B60; // type:function size:0xAC __ct__Q23d3d13AnmMdlWrapperFv = .text:0x80016C10; // type:function size:0x88 __dt__Q23d3d13AnmMdlWrapperFv = .text:0x80016CA0; // type:function size:0xB0 @@ -3591,7 +3591,7 @@ fn_800A07D0 = .text:0x800A07D0; // type:function size:0x58 mainEventSetUnkActorLink = .text:0x800A0830; // type:function size:0x44 findActorBySpecialName = .text:0x800A0880; // type:function size:0x10 getCurrentEventActorBasedOnGroup = .text:0x800A0890; // type:function size:0x58 -fn_800A08F0 = .text:0x800A08F0; // type:function size:0x58 +fn_800A08F0__12EventManagerFQ27fBase_c12GROUP_TYPE_e = .text:0x800A08F0; // type:function size:0x58 checkButton2HeldForCutscenes = .text:0x800A0950; // type:function size:0x60 fn_800A09B0 = .text:0x800A09B0; // type:function size:0x1D0 fn_800A0B80 = .text:0x800A0B80; // type:function size:0x10 @@ -3888,9 +3888,9 @@ destroyMsg__12UnkTextThingFP8MsbtInfo = .text:0x800B2050; // type:function size: destroyFlow__12UnkTextThingFP8MsbfInfo = .text:0x800B2090; // type:function size:0x40 __sinit_\d_textunk_cpp = .text:0x800B20D0; // type:function size:0xC scope:local LytMsgWindowUnk__ctor = .text:0x800B20E0; // type:function size:0x48 -fn_800B2130 = .text:0x800B2130; // type:function size:0x370 -textAdvancingRelated = .text:0x800B24A0; // type:function size:0x5FC -fn_800B2AA0 = .text:0x800B2AA0; // type:function size:0x80 +fn_800B2130__13TextWindowUnkFPCcP10dTextBox_cPvb = .text:0x800B2130; // type:function size:0x370 +textAdvancingRelated__13TextWindowUnkFbb = .text:0x800B24A0; // type:function size:0x5FC +fn_800B2AA0__13TextWindowUnkFv = .text:0x800B2AA0; // type:function size:0x80 somethingWithTextboxEndState = .text:0x800B2B20; // type:function size:0x48 LytMsgWindowUnk__checkTextEndReached = .text:0x800B2B70; // type:function size:0x1C LytMsgWindowUnk__initSomethingMaybe = .text:0x800B2B90; // type:function size:0xD8 @@ -6823,7 +6823,7 @@ fn_80116FC0 = .text:0x80116FC0; // type:function size:0x10 fn_80116FD0 = .text:0x80116FD0; // type:function size:0xC0 fn_80117090 = .text:0x80117090; // type:function size:0x1AC LytMsgWindow__isNotStateInvisible = .text:0x80117240; // type:function size:0x4C -LytMsgWindow__setTextToDisplay = .text:0x80117290; // type:function size:0x24 +setTextToDisplay__15dLytMsgWindow_cFPCw = .text:0x80117290; // type:function size:0x24 fn_801172C0 = .text:0x801172C0; // type:function size:0x50 fn_80117310 = .text:0x80117310; // type:function size:0x4C fn_80117360 = .text:0x80117360; // type:function size:0x14 @@ -6883,7 +6883,7 @@ fn_8011A090 = .text:0x8011A090; // type:function size:0x198 fn_8011A230 = .text:0x8011A230; // type:function size:0x158 __dt__17dLytAutoExplain_cFv = .text:0x8011A390; // type:function size:0x118 __dt__17dLytAutoCaption_cFv = .text:0x8011A4B0; // type:function size:0x118 -fn_8011A5D0 = .text:0x8011A5D0; // type:function size:0x1AC +fn_8011A5D0__15dLytMsgWindow_cCFv = .text:0x8011A5D0; // type:function size:0x1AC changeState__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A780; // type:function size:0x10 changeState__86sStateMgr_c<17dLytAutoExplain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x8011A790; // type:function size:0x10 fn_8011A7A0 = .text:0x8011A7A0; // type:function size:0x10 @@ -10920,7 +10920,7 @@ fn_801B25D0 = .text:0x801B25D0; // type:function size:0x2C fn_801B2600 = .text:0x801B2600; // type:function size:0xC fn_801B2610 = .text:0x801B2610; // type:function size:0x180 fn_801B2790 = .text:0x801B2790; // type:function size:0x98 -fn_801B2830 = .text:0x801B2830; // type:function size:0xC +isValidTextLabel__10dMessage_cFPCc = .text:0x801B2830; // type:function size:0xC fn_801B2840 = .text:0x801B2840; // type:function size:0x38 getMsbtFileName__10dMessage_cFl = .text:0x801B2880; // type:function size:0x88 getMsbfFileName__10dMessage_cFl = .text:0x801B2910; // type:function size:0x88 diff --git a/include/d/d_message.h b/include/d/d_message.h index ffc2864a..bf641ffd 100644 --- a/include/d/d_message.h +++ b/include/d/d_message.h @@ -39,6 +39,7 @@ public: return field_0x32A; } + static bool isValidTextLabel(const char *name); static void loadTextByLabel(const char *label, dTagProcessor_c *tagProcessor, bool, u32, u32); private: diff --git a/include/d/d_tag_processor.h b/include/d/d_tag_processor.h index d2371f18..d5f6ddc0 100644 --- a/include/d/d_tag_processor.h +++ b/include/d/d_tag_processor.h @@ -82,6 +82,18 @@ public: return field_0x90C; } + u8 getField_0x90D() const { + return field_0x90D; + } + + u8 getField_0x90E() const { + return field_0x90E; + } + + s32 getField_0x830() const { + return field_0x830; + } + void setMsgWindowSubtype(u8 type) { field_0x90C = type; } diff --git a/include/d/d_textwindow_unk.h b/include/d/d_textwindow_unk.h index e0754ab4..e9ce7093 100644 --- a/include/d/d_textwindow_unk.h +++ b/include/d/d_textwindow_unk.h @@ -11,6 +11,7 @@ public: virtual ~TextWindowUnk() {} void fn_800B2130(const char *, dTextBox_c *, void*, bool); + void fn_800B2AA0(); void textAdvancingRelated(bool, bool); const wchar_t *getProcessedText() const { diff --git a/include/d/lyt/d_lyt_auto_caption.h b/include/d/lyt/d_lyt_auto_caption.h index 8996d0e0..115d0a40 100644 --- a/include/d/lyt/d_lyt_auto_caption.h +++ b/include/d/lyt/d_lyt_auto_caption.h @@ -17,7 +17,7 @@ public: build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; - /* vt 0x1C */ virtual void open() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; /* vt 0x28 */ virtual bool isDoneClosing() const override; diff --git a/include/d/lyt/d_lyt_auto_explain.h b/include/d/lyt/d_lyt_auto_explain.h index 5d1a2091..44433591 100644 --- a/include/d/lyt/d_lyt_auto_explain.h +++ b/include/d/lyt/d_lyt_auto_explain.h @@ -17,7 +17,7 @@ public: build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; - /* vt 0x1C */ virtual void open() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; /* vt 0x28 */ virtual bool isDoneClosing() const override; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window.h b/include/d/lyt/msg_window/d_lyt_msg_window.h index d3fc6287..7aba7161 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window.h @@ -6,6 +6,7 @@ #include "d/lyt/d2d.h" #include "d/lyt/msg_window/d_lyt_msg_window_common.h" #include "d/lyt/msg_window/d_lyt_msg_window_select_btn.h" +#include "m/m_vec.h" #include "s/s_State.hpp" #include "sized_string.h" @@ -23,10 +24,10 @@ public: bool remove(); private: - static bool isValidTextLabel(const char *name); void setTextToDisplay(const wchar_t *text); void createSubMsgManager(u8 type); void removeSubMsgManagers(); + bool fn_8011A5D0() const; static dLytMsgWindow_c *sInstance; @@ -68,6 +69,9 @@ private: /* 0x748 */ dLytAutoExplain_c *mpAutoExplain; /* 0x74C */ dLytAutoCaption_c *mpAutoCaption; + /* 0x750 */ u8 _0x750[0x768 - 0x750]; + + /* 0x768 */ mVec3_c field_0x768; /* 0x774 */ s32 field_0x774; /* 0x778 */ s32 field_0x778; /* 0x77C */ s32 field_0x77C; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_common.h b/include/d/lyt/msg_window/d_lyt_msg_window_common.h index 7e1544ec..718fbdaa 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_common.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_common.h @@ -2,6 +2,7 @@ #define D_LYT_MGS_WINDOW_COMMON_H #include "common.h" +#include "d/a/obj/d_a_obj_base.h" #include "d/d_tag_processor.h" #include "d/lyt/d2d.h" #include "m/m2d.h" @@ -13,7 +14,7 @@ public: /* vt 0x10 */ virtual bool build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor); /* vt 0x14 */ virtual bool remove(); /* vt 0x18 */ virtual bool execute(); - /* vt 0x1C */ virtual void open(); + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param); /* vt 0x20 */ virtual bool isDoneOpening() const; /* vt 0x24 */ virtual void close(); /* vt 0x28 */ virtual bool isDoneClosing() const; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_stone.h b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h index 3b7cc3dd..6a533581 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_stone.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_stone.h @@ -18,7 +18,7 @@ public: build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; - /* vt 0x1C */ virtual void open() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; /* vt 0x28 */ virtual bool isDoneClosing() const override; diff --git a/include/d/lyt/msg_window/d_lyt_msg_window_wood.h b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h index a43f9e08..9404283b 100644 --- a/include/d/lyt/msg_window/d_lyt_msg_window_wood.h +++ b/include/d/lyt/msg_window/d_lyt_msg_window_wood.h @@ -1,6 +1,7 @@ #ifndef D_LYT_MSG_WINDOW_WOOD_H #define D_LYT_MSG_WINDOW_WOOD_H +#include "d/a/obj/d_a_obj_base.h" #include "d/d_tag_processor.h" #include "d/lyt/d2d.h" #include "d/lyt/d_lyt_common_a_btn.h" @@ -18,7 +19,7 @@ public: build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc, dTagProcessor_c *tagProcessor) override; /* vt 0x14 */ virtual bool remove() override; /* vt 0x18 */ virtual bool execute() override; - /* vt 0x1C */ virtual void open() override; + /* vt 0x1C */ virtual void open(dAcObjBase_c *obj, u32 param) override; /* vt 0x20 */ virtual bool isDoneOpening() const override; /* vt 0x24 */ virtual void close() override; /* vt 0x28 */ virtual bool isDoneClosing() const override; diff --git a/include/toBeSorted/d_d3d.h b/include/toBeSorted/d_d3d.h index f02b4480..605c998c 100644 --- a/include/toBeSorted/d_d3d.h +++ b/include/toBeSorted/d_d3d.h @@ -10,6 +10,7 @@ #include "m/m3d/m_proc.h" #include "m/m_color.h" #include "m/m_mtx.h" +#include "m/m_vec.h" #include "nw4r/g3d/res/g3d_resfile.h" #include "toBeSorted/tlist.h" @@ -17,6 +18,9 @@ namespace d3d { +f32 fn_80016960(const mVec3_c&, const mVec3_c& pos); +bool fn_80016A90(const mVec3_c& pos); + class AnmMdlWrapper : protected m3d::mdlAnmChr { public: AnmMdlWrapper(); diff --git a/include/toBeSorted/event_manager.h b/include/toBeSorted/event_manager.h index c3117290..9c524aec 100644 --- a/include/toBeSorted/event_manager.h +++ b/include/toBeSorted/event_manager.h @@ -3,11 +3,11 @@ #define EVENT_MANAGER_H #include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "f/f_base.h" #include "sized_string.h" #include "toBeSorted/event.h" -#include - class dAcBase_c; class EventManager { @@ -16,6 +16,7 @@ public: static bool finishEvent(dAcBase_c *actor, const char *eventName); static void changeOwnEvent(dAcBase_c *actor1, dAcBase_c *actor2, Event *event, UNKWORD); static bool alsoSetAsCurrentEvent(dAcBase_c *actor, Event *event, void *unknown); + static dAcObjBase_c *fn_800A08F0(fBase_c::GROUP_TYPE_e); static EventManager *sInstance; diff --git a/include/toBeSorted/music_mgrs.h b/include/toBeSorted/music_mgrs.h index 5d93a8b1..7beeb58e 100644 --- a/include/toBeSorted/music_mgrs.h +++ b/include/toBeSorted/music_mgrs.h @@ -7,6 +7,7 @@ extern "C" void *BGM_MGR; extern "C" void fn_8035E000(); extern "C" void fn_8035E860(void *); extern "C" void fn_8035E310(void *); +extern "C" void fn_8035E820(void *); extern "C" void fn_8035E880(void *); extern "C" void *ENEMY_SOUND_MGR; diff --git a/src/d/lyt/d_lyt_auto_caption.cpp b/src/d/lyt/d_lyt_auto_caption.cpp index feb3c198..12b89a55 100644 --- a/src/d/lyt/d_lyt_auto_caption.cpp +++ b/src/d/lyt/d_lyt_auto_caption.cpp @@ -146,7 +146,7 @@ void dLytAutoCaption_c::draw() { mLyt.draw(); } -void dLytAutoCaption_c::open() { +void dLytAutoCaption_c::open(dAcObjBase_c *obj, u32 param) { mShouldBeOpen = true; } diff --git a/src/d/lyt/d_lyt_auto_explain.cpp b/src/d/lyt/d_lyt_auto_explain.cpp index 709bf9c5..6b1e3e4b 100644 --- a/src/d/lyt/d_lyt_auto_explain.cpp +++ b/src/d/lyt/d_lyt_auto_explain.cpp @@ -139,7 +139,7 @@ void dLytAutoExplain_c::draw() { mLyt.draw(); } -void dLytAutoExplain_c::open() { +void dLytAutoExplain_c::open(dAcObjBase_c *obj, u32 param) { mShouldBeOpen = true; } diff --git a/src/d/lyt/msg_window/d_lyt_msg_window.cpp b/src/d/lyt/msg_window/d_lyt_msg_window.cpp index cd189104..41513b27 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window.cpp @@ -1,6 +1,7 @@ #include "d/lyt/msg_window/d_lyt_msg_window.h" #include "common.h" +#include "d/a/obj/d_a_obj_base.h" #include "d/d_message.h" #include "d/d_tag_processor.h" #include "d/d_textunk.h" @@ -13,9 +14,14 @@ #include "d/lyt/d_lyt_auto_explain.h" #include "d/lyt/d_lyt_auto_caption.h" // clang-format on +#include "f/f_base.h" +#include "m/m_vec.h" #include "s/s_State.hpp" #include "toBeSorted/arc_managers/layout_arc_manager.h" +#include "toBeSorted/d_d3d.h" +#include "toBeSorted/event_manager.h" #include "toBeSorted/global_fi_context.h" +#include "toBeSorted/music_mgrs.h" STATE_DEFINE(dLytMsgWindow_c, Invisible); STATE_DEFINE(dLytMsgWindow_c, In); @@ -129,7 +135,7 @@ void dLytMsgWindow_c::executeState_Invisible() { mStateMgr.changeState(StateID_WaitKeyMapClose); } else if (field_0x80C) { field_0x80C = 0; - if (isValidTextLabel(mName)) { + if (dMessage_c::isValidTextLabel(mName)) { mNameCopy = mName; dMessage_c::loadTextByLabel(mNameCopy, mpTagProcessor, true, 0, 0); @@ -204,7 +210,28 @@ void dLytMsgWindow_c::executeState_Invisible() { } void dLytMsgWindow_c::finalizeState_Invisible() {} -void dLytMsgWindow_c::initializeState_In() {} +extern "C" s32 lbl_80575134; +extern "C" s32 lbl_8057511C; + +void dLytMsgWindow_c::initializeState_In() { + dAcObjBase_c *obj = EventManager::fn_800A08F0(fBase_c::ACTOR); + u32 param = 0; + if (mpTagProcessor->getField_0x90D() == 1) { + param = 0; + } else if (mpTagProcessor->getField_0x90D() == 2) { + param = 2; + } else if (mpTagProcessor->getField_0x90D() == 3) { + param = 1; + } else if (obj != nullptr && d3d::fn_80016A90(obj->poscopy2)) { + d3d::fn_80016960(field_0x768, obj->poscopy2); + // TODO - stack and FPR problems + field_0x768 = mVec3_c(field_0x768.x, field_0x768.y, 0.0f); + if (field_0x768.y < lbl_8057511C / 3.0f + lbl_80575134) { + param = 2; + } + } + mpCurrentSubtype->open(obj, param); +} void dLytMsgWindow_c::executeState_In() { if (mpCurrentSubtype->isDoneOpening()) { mStateMgr.changeState(StateID_OutputText); @@ -221,16 +248,113 @@ void dLytMsgWindow_c::initializeState_OutputText() { void dLytMsgWindow_c::executeState_OutputText() {} void dLytMsgWindow_c::finalizeState_OutputText() {} -void dLytMsgWindow_c::initializeState_WaitKeyChangePage0() {} -void dLytMsgWindow_c::executeState_WaitKeyChangePage0() {} +extern "C" bool checkButtonAPressed(); +void dLytMsgWindow_c::initializeState_WaitKeyChangePage0() { + if (field_0x811 != 0) { + field_0x812 = 1; + } else if (field_0x814 == 0) { + fn_8035E860(BGM_MGR); + } +} +void dLytMsgWindow_c::executeState_WaitKeyChangePage0() { + bool allowChange = false; + if (field_0x811 != 0) { + if (mpTagProcessor->getField_0x830() <= 0) { + allowChange = true; + } + } else if (field_0x814 != 0) { + if (field_0x813 != 0) { + field_0x813 = 0; + allowChange = true; + } + } else if (checkButtonAPressed() || fn_8011A5D0()) { + fn_8035E880(BGM_MGR); + allowChange = true; + } + + if (!allowChange) { + return; + } + + if (field_0x811 == 0) { + mStateMgr.changeState(StateID_WaitKeyChangePage1); + } else { + mpMsgWindowUnk->fn_800B2AA0(); + if (mpTagProcessor->getMsgWindowSubtype() >= 6 && mpTagProcessor->getMsgWindowSubtype() < 8) { + mpMsgWindowUnk->textAdvancingRelated(true, true); + } + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + field_0x818 = 1; + mStateMgr.changeState(StateID_OutputText); + } +} void dLytMsgWindow_c::finalizeState_WaitKeyChangePage0() {} void dLytMsgWindow_c::initializeState_WaitKeyChangePage1() {} -void dLytMsgWindow_c::executeState_WaitKeyChangePage1() {} +void dLytMsgWindow_c::executeState_WaitKeyChangePage1() { + if (mpCurrentSubtype->vt_0x38(false)) { + field_0x817 = 0; + mpMsgWindowUnk->fn_800B2AA0(); + if (mpTagProcessor->getMsgWindowSubtype() >= 6 && mpTagProcessor->getMsgWindowSubtype() < 8) { + mpMsgWindowUnk->textAdvancingRelated(true, true); + } + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + field_0x818 = 1; + mStateMgr.changeState(StateID_OutputText); + } +} void dLytMsgWindow_c::finalizeState_WaitKeyChangePage1() {} -void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd0() {} -void dLytMsgWindow_c::executeState_WaitKeyMsgEnd0() {} +void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd0() { + if (field_0x811 != 0) { + field_0x812 = 1; + } else if (mpTagProcessor->getField_0x90E() == 0 && field_0x814 == 0) { + fn_8035E860(BGM_MGR); + } +} +void dLytMsgWindow_c::executeState_WaitKeyMsgEnd0() { + bool allowChange = false; + if (field_0x811 != 0) { + if (mpTagProcessor->getField_0x830() <= 0) { + allowChange = true; + } + } else if (mpTagProcessor->getField_0x90E() != 0) { + allowChange = true; + } else if (field_0x814 != 0) { + if (field_0x813 != 0) { + field_0x813 = 0; + allowChange = true; + } + } else if (checkButtonAPressed() || fn_8011A5D0()) { + fn_8035E880(BGM_MGR); + allowChange = true; + } + + if (!allowChange) { + return; + } + + if (field_0x811 == 0 && mpTagProcessor->getField_0x90E() == 0) { + mStateMgr.changeState(StateID_WaitKeyMsgEnd1); + } else if (field_0x810 != 0) { + if (dMessage_c::isValidTextLabel(mName)) { + mNameCopy = mName; + dTextBox_c *box = mpCurrentSubtype->vt_0x30(); + mpMsgWindowUnk->fn_800B2130(mNameCopy, box, field_0x828, true); + setTextToDisplay(mpMsgWindowUnk->getProcessedText()); + field_0x818 = 1; + mStateMgr.changeState(StateID_OutputText); + field_0x810 = 0; + } + } else { + fn_8035E820(BGM_MGR); + if (mpTagProcessor->getField_0x90E() != 0) { + mStateMgr.changeState(StateID_WaitKeySelectQuestion); + } else { + mStateMgr.changeState(StateID_Out); + } + } +} void dLytMsgWindow_c::finalizeState_WaitKeyMsgEnd0() {} void dLytMsgWindow_c::initializeState_WaitKeyMsgEnd1() {} diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp index 8b3815d3..33fc3702 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_stone.cpp @@ -168,7 +168,7 @@ void dLytMsgWindowStone_c::draw() { mLyt.draw(); } -void dLytMsgWindowStone_c::open() { +void dLytMsgWindowStone_c::open(dAcObjBase_c *obj, u32 param) { mShouldBeOpen = true; } diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp index 95604dcb..95751633 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_wood.cpp @@ -166,7 +166,7 @@ void dLytMsgWindowWood_c::draw() { mLyt.draw(); } -void dLytMsgWindowWood_c::open() { +void dLytMsgWindowWood_c::open(dAcObjBase_c *obj, u32 param) { mShouldBeOpen = true; }