mirror of https://github.com/zeldaret/botw.git
query: Implement CompareGameDataTime
This commit is contained in:
parent
ce3d29d2ec
commit
bc8b8d5829
|
|
@ -199,7 +199,7 @@ query::CompareGameDataFloat:
|
|||
query::CompareGameDataInt:
|
||||
status: done
|
||||
query::CompareGameDataTime:
|
||||
status: pending
|
||||
status: done
|
||||
query::ComparePlayerFireResistantLevel:
|
||||
status: pending
|
||||
query::ComparePlayerHeart:
|
||||
|
|
|
|||
|
|
@ -41247,7 +41247,7 @@
|
|||
0x0000007100698430,AI_Query_CompareGameDataTime::ctor,92,_ZN5uking5query19CompareGameDataTimeC1ERKN4ksys3act2ai5Query7InitArgE
|
||||
0x000000710069848c,AI_Query_CompareGameDataTime::dtor,20,_ZN5uking5query19CompareGameDataTimeD1Ev
|
||||
0x00000071006984a0,AI_Query_CompareGameDataTime::dtorDelete,52,_ZN5uking5query19CompareGameDataTimeD0Ev
|
||||
0x00000071006984d4,AI_Query_CompareGameDataTime::doQuery,336,
|
||||
0x00000071006984d4,AI_Query_CompareGameDataTime::doQuery,336,_ZN5uking5query19CompareGameDataTime7doQueryEv
|
||||
0x0000007100698624,AI_Query_CompareGameDataTime::m10,224,_ZN5uking5query19CompareGameDataTime10loadParamsERKN4evfl8QueryArgE
|
||||
0x0000007100698704,AI_Query_CompareGameDataTime::loadParams,212,_ZN5uking5query19CompareGameDataTime10loadParamsEv
|
||||
0x00000071006987d8,AI_Query_CompareGameDataTime::rtti1,204,_ZNK5uking5query19CompareGameDataTime27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||
|
|
|
|||
|
Can't render this file because it is too large.
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "Game/AI/Query/queryCompareGameDataTime.h"
|
||||
#include <evfl/query.h>
|
||||
#include "KingSystem/GameData/gdtManager.h"
|
||||
|
||||
namespace uking::query {
|
||||
|
||||
|
|
@ -7,8 +8,40 @@ CompareGameDataTime::CompareGameDataTime(const InitArg& arg) : ksys::act::ai::Qu
|
|||
|
||||
CompareGameDataTime::~CompareGameDataTime() = default;
|
||||
|
||||
// FIXME: implement
|
||||
int CompareGameDataTime::doQuery() {
|
||||
int min_a{};
|
||||
int sec_a{};
|
||||
int milli_a{};
|
||||
int min_b{};
|
||||
int sec_b{};
|
||||
int milli_b{};
|
||||
|
||||
auto* gdt = ksys::gdt::Manager::instance();
|
||||
if (!gdt)
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&min_a, mGameDataIntMinA))
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&sec_a, mGameDataIntSecA))
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&milli_a, mGameDataIntMilliA))
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&min_b, mGameDataIntMinB))
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&sec_b, mGameDataIntSecB))
|
||||
return 0;
|
||||
if (!gdt->getParamBypassPerm().get().getS32(&milli_b, mGameDataIntMilliB))
|
||||
return 0;
|
||||
|
||||
const int time_a = (60 * 1000 * min_a) + (1000 * sec_a) + milli_a;
|
||||
const int time_b = (60 * 1000 * min_b) + (1000 * sec_b) + milli_b;
|
||||
|
||||
if (time_a < time_b)
|
||||
return 0;
|
||||
if (time_a == time_b)
|
||||
return 1;
|
||||
if (time_a != time_b)
|
||||
return 2;
|
||||
SEAD_ASSERT(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue