1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#include "Game/AI/Query/queryCompareGameDataTime.h"
#include <evfl/Query.h>
#include "KingSystem/GameData/gdtManager.h"
namespace uking::query {
CompareGameDataTime::CompareGameDataTime(const InitArg& arg) : ksys::act::ai::Query(arg) {}
CompareGameDataTime::~CompareGameDataTime() = default;
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;
}
void CompareGameDataTime::loadParams(const evfl::QueryArg& arg) {
loadString(arg.param_accessor, "GameDataIntMinA");
loadString(arg.param_accessor, "GameDataIntSecA");
loadString(arg.param_accessor, "GameDataIntMilliA");
loadString(arg.param_accessor, "GameDataIntMinB");
loadString(arg.param_accessor, "GameDataIntSecB");
loadString(arg.param_accessor, "GameDataIntMilliB");
}
void CompareGameDataTime::loadParams() {
getDynamicParam(&mGameDataIntMinA, "GameDataIntMinA");
getDynamicParam(&mGameDataIntSecA, "GameDataIntSecA");
getDynamicParam(&mGameDataIntMilliA, "GameDataIntMilliA");
getDynamicParam(&mGameDataIntMinB, "GameDataIntMinB");
getDynamicParam(&mGameDataIntSecB, "GameDataIntSecB");
getDynamicParam(&mGameDataIntMilliB, "GameDataIntMilliB");
}
} // namespace uking::query
|