aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Warden/WardenCheckMgr.cpp
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-08-20 17:56:10 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-04 00:27:11 +0100
commit15d75dea10c058364a2577b73a627b4701d4ce01 (patch)
tree65f7202eeb793b019c090dd157800c0ed2e4fa92 /src/server/game/Warden/WardenCheckMgr.cpp
parent317bb198b1152aafe8a48137e3748423eca02448 (diff)
Core/Warden: More refactors lifted from #25286.
(cherry picked from commit a3971ca4b05e2913850b6d4fe7d40884fa645fa0)
Diffstat (limited to 'src/server/game/Warden/WardenCheckMgr.cpp')
-rw-r--r--src/server/game/Warden/WardenCheckMgr.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/server/game/Warden/WardenCheckMgr.cpp b/src/server/game/Warden/WardenCheckMgr.cpp
index e8db4c00b2c..55b1b479dde 100644
--- a/src/server/game/Warden/WardenCheckMgr.cpp
+++ b/src/server/game/Warden/WardenCheckMgr.cpp
@@ -53,7 +53,7 @@ void WardenCheckMgr::LoadWardenChecks()
uint16 maxCheckId = fields[0].GetUInt16();
- _checks.resize(maxCheckId + 1);
+ _checks.resize(maxCheckId+1);
// 0 1 2 3 4 5 6 7
result = WorldDatabase.Query("SELECT id, type, data, result, address, length, str, comment FROM warden_checks ORDER BY id ASC");
@@ -65,14 +65,18 @@ void WardenCheckMgr::LoadWardenChecks()
uint16 const id = fields[0].GetUInt16();
WardenCheckType const type = static_cast<WardenCheckType>(fields[1].GetUInt8());
+ WardenCheckCategory const category = GetWardenCheckCategory(type);
+
+ if (category == NUM_CHECK_CATEGORIES)
+ {
+ TC_LOG_ERROR("sql.sql", "Warden check with id %u lists check type %u in `warden_checks`, which is not supported. Skipped.", id, type);
+ continue;
+ }
WardenCheck& wardenCheck = _checks[id];
wardenCheck.CheckId = id;
wardenCheck.Type = type;
- // Initialize action with default action from config
- wardenCheck.Action = WardenActions(sWorld->getIntConfig(CONFIG_WARDEN_CLIENT_FAIL_ACTION));
-
if (type == PAGE_CHECK_A || type == PAGE_CHECK_B || type == DRIVER_CHECK)
wardenCheck.Data = fields[2].GetBinary();
@@ -93,11 +97,10 @@ void WardenCheckMgr::LoadWardenChecks()
if (wardenCheck.Comment.empty())
wardenCheck.Comment = "Undocumented Check";
- if (type == MEM_CHECK || type == MODULE_CHECK)
- MemChecksIdPool.push_back(id);
- else
- OtherChecksIdPool.push_back(id);
+ // initialize action with default action from config, this may be overridden later
+ wardenCheck.Action = WardenActions(sWorld->getIntConfig(CONFIG_WARDEN_CLIENT_FAIL_ACTION));
+ _pools[category].push_back(id);
++count;
}
while (result->NextRow());