diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 3db151bc..ca006143 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -40718,7 +40718,7 @@ Address,Quality,Size,Name 0x0000007100689ec8,O,000048,_ZN5uking5query11CheckE3ModeC1ERKN4ksys3act2ai5Query7InitArgE 0x0000007100689ef8,O,000020,_ZN5uking5query11CheckE3ModeD1Ev 0x0000007100689f0c,O,000052,_ZN5uking5query11CheckE3ModeD0Ev -0x0000007100689f40,U,000104,AI_Query_CheckE3Mode::doQuery +0x0000007100689f40,O,000104,_ZN5uking5query11CheckE3Mode7doQueryEv 0x0000007100689fa8,O,000004,_ZN5uking5query11CheckE3Mode10loadParamsERKN4evfl8QueryArgE 0x0000007100689fac,O,000004,_ZN5uking5query11CheckE3Mode10loadParamsEv 0x0000007100689fb0,O,000204,_ZNK5uking5query11CheckE3Mode27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE diff --git a/src/Game/AI/Query/queryCheckE3Mode.cpp b/src/Game/AI/Query/queryCheckE3Mode.cpp index 45617654..88bb4056 100644 --- a/src/Game/AI/Query/queryCheckE3Mode.cpp +++ b/src/Game/AI/Query/queryCheckE3Mode.cpp @@ -1,5 +1,6 @@ #include "Game/AI/Query/queryCheckE3Mode.h" #include +#include "Game/E3Mgr.h" namespace uking::query { @@ -7,9 +8,20 @@ CheckE3Mode::CheckE3Mode(const InitArg& arg) : ksys::act::ai::Query(arg) {} CheckE3Mode::~CheckE3Mode() = default; -// FIXME: implement int CheckE3Mode::doQuery() { - return -1; + auto* e3m = E3Mgr::instance(); + if (e3m != nullptr) { + if (e3m->isDemoMode0AndNotStageSelect()) { + return 1; + } + if (e3m->isDemoMode1AndNotStageSelect()) { + return 2; + } + if (e3m->isDemoMode2AndNotStageSelect()) { + return 3; + } + } + return 0; } void CheckE3Mode::loadParams(const evfl::QueryArg& arg) {}