aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Transports.cpp23
-rw-r--r--src/game/Transports.h3
-rw-r--r--src/game/Unit.cpp11
3 files changed, 36 insertions, 1 deletions
diff --git a/src/game/Transports.cpp b/src/game/Transports.cpp
index 2125fcf0567..21d3d3b1f27 100644
--- a/src/game/Transports.cpp
+++ b/src/game/Transports.cpp
@@ -400,6 +400,9 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids)
// sLog.outString("T: %d, x: %f, y: %f, z: %f, t:%d", t, pos.x, pos.y, pos.z, teleport);
+ if(keyFrames[i+1].delay > 5)
+ pos.delayed = true;
+
//if (teleport)
m_WayPoints[t] = pos;
@@ -504,6 +507,26 @@ void Transport::Update(uint32 /*p_time*/)
Relocate(m_curr->second.x, m_curr->second.y, m_curr->second.z);
}
+ if(m_curr->second.delayed)
+ {
+ switch (GetEntry())
+ {
+ case 176495:
+ case 164871:
+ case 175080:
+ SendPlaySound(11804, false); break; // ZeppelinDocked
+ case 20808:
+ case 181646:
+ case 176231:
+ case 176244:
+ case 176310:
+ case 177233:
+ SendPlaySound(5495, false);break; // BoatDockingWarning
+ default:
+ SendPlaySound(5154, false); break; // ShipDocked
+ }
+ }
+
/*
for(PlayerSet::iterator itr = m_passengers.begin(); itr != m_passengers.end();)
{
diff --git a/src/game/Transports.h b/src/game/Transports.h
index 482ec16352a..0e39d57c089 100644
--- a/src/game/Transports.h
+++ b/src/game/Transports.h
@@ -88,12 +88,13 @@ class Transport : private GameObject
{
WayPoint() : mapid(0), x(0), y(0), z(0), teleport(false) {}
WayPoint(uint32 _mapid, float _x, float _y, float _z, bool _teleport) :
- mapid(_mapid), x(_x), y(_y), z(_z), teleport(_teleport) {}
+ mapid(_mapid), x(_x), y(_y), z(_z), teleport(_teleport), delayed(false) {}
uint32 mapid;
float x;
float y;
float z;
bool teleport;
+ bool delayed;
};
typedef std::map<uint32, WayPoint> WayPointMap;
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 81e6fa521b0..9e5da761bcc 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -8600,6 +8600,17 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
switch(spellProto->SpellFamilyName)
{
+ case SPELLFAMILY_GENERIC:
+ // Siphon Essence - 0%
+ if(spellProto->AttributesEx == 268435456 && spellProto->SpellIconID == 2027)
+ {
+ CastingTime = 0;
+ }
+ // Goblin Rocket Launcher - 0%
+ else if (spellProto->SpellIconID == 184 && spellProto->Attributes == 4259840)
+ {
+ CastingTime = 0;
+ }
case SPELLFAMILY_MAGE:
// Ignite - do not modify, it is (8*Rank)% damage of procing Spell
if(spellProto->Id==12654)