aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2013-08-30 23:09:01 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2013-08-30 23:09:01 +0200
commit3f6296b65ebd63849f67895f7ab6280b8828da28 (patch)
treec5462efbc819912b93aaa4402d46c709fb61f8e2 /src/server/game
parent7ecf4fdec147af7da51541aae9de4d91aff05ad6 (diff)
parent4f10e6b89ab95e76e9f0de3f8ad4b8bd4ac1de84 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp5
-rw-r--r--src/server/game/Movement/Spline/Spline.h4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp3
3 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 79d5c22e6a2..6a7e6c5dedd 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1165,6 +1165,7 @@ void WorldSession::HandleCharRenameOpcode(WorldPacket& recvData)
void WorldSession::HandleChangePlayerNameOpcodeCallBack(PreparedQueryResult result, std::string const& newName)
{
+ AntiDOS.AllowOpcode(CMSG_CHAR_ENUM, true);
if (!result)
{
WorldPacket data(SMSG_CHAR_RENAME, 1);
@@ -1422,6 +1423,8 @@ void WorldSession::HandleCharCustomize(WorldPacket& recvData)
stmt->setUInt32(0, GUID_LOPART(guid));
// TODO: Make async with callback
+ // TODO 2: Allow opcode at end of callback
+ AntiDOS.AllowOpcode(CMSG_CHAR_ENUM, true);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
@@ -1675,6 +1678,8 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData)
uint8 playerClass = nameData->m_class;
uint8 level = nameData->m_level;
+ // TO Do: Make async and allow opcode on callback
+ AntiDOS.AllowOpcode(CMSG_CHAR_ENUM, true);
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_AT_LOGIN_TITLES);
stmt->setUInt32(0, lowGuid);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h
index 42090cae71b..d4b100ee46e 100644
--- a/src/server/game/Movement/Spline/Spline.h
+++ b/src/server/game/Movement/Spline/Spline.h
@@ -21,6 +21,7 @@
#include "MovementTypedefs.h"
#include <G3D/Vector3.h>
+#include <limits>
namespace Movement {
@@ -184,6 +185,9 @@ public:
while (i < index_hi)
{
new_length = cacher(*this, i);
+ // length overflowed, assign to max positive value
+ if (new_length < 0)
+ new_length = std::numeric_limits<length_type>::max();
lengths[++i] = new_length;
ASSERT(prev_length <= new_length);
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index ac3f12ed8c5..91a5c35955a 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1034,6 +1034,9 @@ void Spell::EffectForceCast(SpellEffIndex effIndex)
case 52349: // Overtake
unitTarget->CastCustomSpell(unitTarget, spellInfo->Id, &damage, NULL, NULL, true, NULL, NULL, m_originalCasterGUID);
return;
+ case 72299: // Malleable Goo Summon Trigger
+ unitTarget->CastSpell(unitTarget, spellInfo->Id, true, NULL, NULL, m_originalCasterGUID);
+ return;
}
}