aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Warden/WardenWin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Warden/WardenWin.cpp')
-rw-r--r--src/server/game/Warden/WardenWin.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/game/Warden/WardenWin.cpp b/src/server/game/Warden/WardenWin.cpp
index b25d6322c2c..60d0267175e 100644
--- a/src/server/game/Warden/WardenWin.cpp
+++ b/src/server/game/Warden/WardenWin.cpp
@@ -476,3 +476,31 @@ void WardenWin::HandleCheckResult(ByteBuffer &buff)
uint32 holdOff = sWorld->getIntConfig(CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF);
_checkTimer = (holdOff < 1 ? 1 : holdOff) * IN_MILLISECONDS;
}
+
+size_t WardenWin::DEBUG_ForceSpecificChecks(std::vector<uint16> const& checks)
+{
+ std::vector<uint16>::iterator memChecksIt = _memChecks.begin();
+ std::vector<uint16>::iterator otherChecksIt = _otherChecks.begin();
+
+ size_t n = 0;
+ for (uint16 check : checks)
+ {
+ if (auto it = std::find(memChecksIt, _memChecks.end(), check); it != _memChecks.end())
+ {
+ std::iter_swap(it, memChecksIt);
+ ++memChecksIt;
+ ++n;
+ }
+ else if (auto it = std::find(otherChecksIt, _otherChecks.end(), check); it != _otherChecks.end())
+ {
+ std::iter_swap(it, otherChecksIt);
+ ++otherChecksIt;
+ ++n;
+ }
+ }
+
+ _memChecksIt = _memChecks.begin();
+ _otherChecksIt = _otherChecks.begin();
+
+ return n;
+}