diff --git a/src/SB/Game/zTalkBox.cpp b/src/SB/Game/zTalkBox.cpp index 0bca75d7..9e54f6fa 100644 --- a/src/SB/Game/zTalkBox.cpp +++ b/src/SB/Game/zTalkBox.cpp @@ -365,3 +365,63 @@ void ztalkbox::permit(U32 add_flags, U32 remove_flags) shared.permit &= ~remove_flags; shared.permit |= add_flags; } + +void ztalkbox::load(xBase& data, xDynAsset& asset, unsigned long) +{ + ((ztalkbox&)data).load((const ztalkbox::asset_type&)asset); +} + +namespace +{ + static void parse_tag_pause(xtextbox::jot&, const xtextbox&, const xtextbox&, + const xtextbox::split_tag&) + { + } + + static void reset_tag_pause(xtextbox::jot&, const xtextbox&, const xtextbox&, + const xtextbox::split_tag&) + { + } + + U8 trigger_pause(const xtextbox::jot&) + { + return 1; + } + + state_type::state_type(state_enum t) + { + type = t; + } + +} // namespace + +void start_state_type::stop() +{ +} + +S8 start_state_type::update(xScene& scn, F32 dt) +{ + return 2; +} + +void next_state_type::stop() +{ +} + +void stop_state_type::start() +{ +} + +void stop_state_type::stop() +{ +} + +S8 stop_state_type::update(xScene& scn, F32 dt) +{ + return -1; +} + +void wait_context::reset_type() +{ + *(U16*)&this->type = 0; +} diff --git a/src/SB/Game/zTalkBox.h b/src/SB/Game/zTalkBox.h index 8c7c3172..879f4458 100644 --- a/src/SB/Game/zTalkBox.h +++ b/src/SB/Game/zTalkBox.h @@ -61,27 +61,22 @@ struct ztalkbox : xBase { callback() { - } virtual void on_signal(U32) { - } virtual void on_start() { - } virtual void on_stop() { - } virtual void on_answer(answer_enum answer) { - } }; @@ -150,9 +145,28 @@ namespace struct state_type { state_enum type; + + state_type(state_enum t); + virtual void start(); + virtual void stop(); + }; + struct next_state_type + { + void stop(); + }; + + struct start_state_type + { + void stop(); + S8 update(xScene& scn, F32 dt); + }; + + struct stop_state_type + { void start(); void stop(); + S8 update(xScene& scn, F32 dt); }; struct jot; @@ -252,6 +266,7 @@ namespace F32 delay; U32 event_mask; query_enum query; + void reset_type(); }; struct trigger_pair @@ -290,6 +305,6 @@ namespace zNPCCommon* speak_npc; // 0x8694 U32 speak_player; // 0x8698 }; -} +} // namespace #endif