From 558e334c3379216d053c18c08b05971587f8f8d2 Mon Sep 17 00:00:00 2001 From: tartalo Date: Wed, 11 Nov 2009 13:45:10 +0100 Subject: [PATCH] Wintergrasp: Fix tenacity calculation, by rammbonr5. Closes #156 Wintergrasp: Safe check to avoid crash, by Spp. Closes #188 --HG-- branch : trunk --- src/game/Wintergrasp.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp index 37c70c87271..5a3157028e3 100644 --- a/src/game/Wintergrasp.cpp +++ b/src/game/Wintergrasp.cpp @@ -977,8 +977,11 @@ bool OPvPWintergrasp::UpdateQuestGiverPosition(uint32 guid, Creature *creature) creature->GetPositionZ() == pos.GetPositionZ()) return false; - creature->CombatStop(true); - creature->getHostilRefManager().deleteReferences(); + if (creature->isInCombat()) + { + creature->CombatStop(true); + creature->getHostilRefManager().deleteReferences(); + } creature->SetHomePosition(pos); creature->DestroyForNearbyPlayers(); if (!creature->GetMap()->IsLoaded(pos.GetPositionX(), pos.GetPositionY())) @@ -1252,9 +1255,9 @@ void OPvPWintergrasp::UpdateTenacityStack() if (allianceNum && hordeNum) { if (allianceNum < hordeNum) - newStack = (hordeNum / allianceNum - 1)*4; // positive, should cast on alliance + newStack = int32((hordeNum / (float)allianceNum - 1)*4); // positive, should cast on alliance else if (allianceNum > hordeNum) - newStack = (1 - int32(allianceNum / hordeNum))*4; // negative, should cast on horde + newStack = int32((1 - allianceNum / (float)hordeNum)*4); // negative, should cast on horde } if (newStack == m_tenacityStack)