summaryrefslogtreecommitdiff
path: root/src/Game/AI/Query/queryCompareGameDataTime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Game/AI/Query/queryCompareGameDataTime.cpp')
-rw-r--r--src/Game/AI/Query/queryCompareGameDataTime.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/Game/AI/Query/queryCompareGameDataTime.cpp b/src/Game/AI/Query/queryCompareGameDataTime.cpp
index 257ab9d4..b65d01bb 100644
--- a/src/Game/AI/Query/queryCompareGameDataTime.cpp
+++ b/src/Game/AI/Query/queryCompareGameDataTime.cpp
@@ -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;
}