diff options
author | Treeston <treeston.mmoc@gmail.com> | 2020-08-20 17:56:10 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2020-08-20 17:56:10 +0200 |
commit | a3971ca4b05e2913850b6d4fe7d40884fa645fa0 (patch) | |
tree | b52d7e71fcb3bf55ebc2ea6e470bbfbf549513fe /src/server/game/Warden/WardenCheckMgr.cpp | |
parent | 5b4288f05f7e2360bcdc80872787ee2e7a7a2f56 (diff) |
Core/Warden: More refactors lifted from #25286.
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 1064ec31c53..c3b1651ec19 100644 --- a/src/server/game/Warden/WardenCheckMgr.cpp +++ b/src/server/game/Warden/WardenCheckMgr.cpp @@ -51,7 +51,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"); @@ -63,14 +63,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(); @@ -91,11 +95,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()); |