From 2bc320d2b7feb2835e84122d471037254b4ba373 Mon Sep 17 00:00:00 2001 From: tgsm Date: Thu, 15 May 2025 14:33:24 -0500 Subject: [PATCH] zTaskBox: Match cb_dispatch --- src/SB/Game/zTaskBox.cpp | 33 +++++++++++++++++++++++++++++++++ src/SB/Game/zTaskBox.h | 1 + 2 files changed, 34 insertions(+) diff --git a/src/SB/Game/zTaskBox.cpp b/src/SB/Game/zTaskBox.cpp index 1ff5d595d..8ad806d17 100644 --- a/src/SB/Game/zTaskBox.cpp +++ b/src/SB/Game/zTaskBox.cpp @@ -221,6 +221,39 @@ void ztaskbox::on_talk_start() } } +S32 ztaskbox::cb_dispatch(xBase*, xBase* to, U32 event, const F32*, xBase*) +{ + ztaskbox& taskbox = *(ztaskbox*)to; + + switch (event) + { + case eEventReset: + taskbox.reset(); + break; + case eEventStartConversation: + taskbox.start_talk(NULL); + break; + case eEventEndConversation: + taskbox.stop_talk(); + break; + case eEventTaskBox_Initiate: + taskbox.initiate(); + break; + case eEventTaskBox_SetSuccess: + taskbox.succeed(); + break; + case eEventTaskBox_SetFailure: + taskbox.fail(); + break; + case eEventTaskBox_OnAccept: + case eEventTaskBox_OnDecline: + case eEventTaskBox_OnComplete: + break; + } + + return 1; +} + void ztaskbox::talk_callback::on_start() { this->task->on_talk_start(); diff --git a/src/SB/Game/zTaskBox.h b/src/SB/Game/zTaskBox.h index da42933a6..fa008550a 100644 --- a/src/SB/Game/zTaskBox.h +++ b/src/SB/Game/zTaskBox.h @@ -66,6 +66,7 @@ struct ztaskbox : xBase void on_talk_start(); void on_talk_stop(ztalkbox::answer_enum answer); + static S32 cb_dispatch(xBase*, xBase* to, U32 event, const F32* argf, xBase*); void set_state(state_enum state); void set_callback(callback* cb); void stop_talk();