diff options
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()); |