diff options
author | Treeston <treeston.mmoc@gmail.com> | 2020-08-20 17:56:10 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-04 00:27:11 +0100 |
commit | 15d75dea10c058364a2577b73a627b4701d4ce01 (patch) | |
tree | 65f7202eeb793b019c090dd157800c0ed2e4fa92 /src/server/game/Warden/WardenCheckMgr.cpp | |
parent | 317bb198b1152aafe8a48137e3748423eca02448 (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.cpp | 19 |
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()); |