From c429e7d4899b51bba5df9bf0be0acee4ecc38cb7 Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 30 Jul 2016 18:50:44 -0300 Subject: Core/Entities: debloat SummonGameObject parameter list using proper wrappers and enable GO rotation in scripts - There's still an overload allowing for x, y, z, o to be passed directly - Fixed default animstate for GameObject creation in many places, it should be 255, not 100 (checked in sniffs) (cherry picked from commit 62bfee37cb21584cef631dda428feaf5eb829cda) # Conflicts: # src/server/game/Battlefield/Battlefield.cpp # src/server/game/Battlegrounds/Battleground.cpp # src/server/game/Entities/GameObject/GameObject.cpp # src/server/game/Entities/GameObject/GameObject.h # src/server/game/Entities/Object/Object.cpp # src/server/game/Entities/Object/Object.h # src/server/game/Spells/SpellEffects.cpp # src/server/scripts/Commands/cs_gobject.cpp # src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp # src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp # src/server/scripts/Kalimdor/zone_feralas.cpp # src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp # src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp # src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp --- src/server/game/AI/SmartScripts/SmartScript.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/server/game/AI/SmartScripts') diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 60f89e07640..104374ad9d6 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1264,18 +1264,13 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u ObjectList* targets = GetTargets(e, unit); if (targets) { - float x, y, z, o; for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) { if (!IsUnit(*itr)) continue; - (*itr)->GetPosition(x, y, z, o); - x += e.target.x; - y += e.target.y; - z += e.target.z; - o += e.target.o; - GetBaseObject()->SummonGameObject(e.action.summonGO.entry, x, y, z, o, 0, 0, 0, 0, e.action.summonGO.despawnTime); + Position pos = (*itr)->GetPositionWithOffset(Position(e.target.x, e.target.y, e.target.z, e.target.o)); + GetBaseObject()->SummonGameObject(e.action.summonGO.entry, pos, G3D::Quat(), e.action.summonGO.despawnTime); } delete targets; @@ -1284,7 +1279,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (e.GetTargetType() != SMART_TARGET_POSITION) break; - GetBaseObject()->SummonGameObject(e.action.summonGO.entry, e.target.x, e.target.y, e.target.z, e.target.o, 0, 0, 0, 0, e.action.summonGO.despawnTime); + GetBaseObject()->SummonGameObject(e.action.summonGO.entry, Position(e.target.x, e.target.y, e.target.z, e.target.o), G3D::Quat(), e.action.summonGO.despawnTime); break; } case SMART_ACTION_KILL_UNIT: -- cgit v1.2.3