aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp4
-rw-r--r--src/bindings/scripts/scripts/go/go_scripts.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp14
-rw-r--r--src/game/Chat.cpp3
-rw-r--r--src/game/MiscHandler.cpp1
-rw-r--r--src/game/Object.cpp7
-rw-r--r--src/game/Object.h8
-rw-r--r--src/game/Player.cpp2
-rw-r--r--src/game/SpellAuras.cpp23
-rw-r--r--src/game/WaypointMovementGenerator.cpp3
11 files changed, 47 insertions, 22 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index 2ae7072dee1..10b23ba1b47 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.cpp
@@ -1690,7 +1690,7 @@ TRINITY_DLL_EXPORT
bool GOSelect( Player *player, GameObject *_GO, uint32 sender, uint32 action )
{
if(!_GO)
- return false;
+ return false;
debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
@@ -1704,7 +1704,7 @@ TRINITY_DLL_EXPORT
bool GOSelectWithCode( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode )
{
if(!_GO)
- return false;
+ return false;
debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp
index 969c7ea69ee..eea2e40a1af 100644
--- a/src/bindings/scripts/scripts/go/go_scripts.cpp
+++ b/src/bindings/scripts/scripts/go/go_scripts.cpp
@@ -190,7 +190,7 @@ bool GOHello_go_tablet_of_the_seven(Player *player, GameObject* _GO)
bool GOHello_go_jump_a_tron(Player *player, GameObject* _GO)
{
if (player->GetQuestStatus(10111) == QUEST_STATUS_INCOMPLETE)
- player->CastSpell(player,33382,true);
+ player->CastSpell(player,33382,true);
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
index 39db5bed06a..3253a384217 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h
@@ -13,7 +13,7 @@
#define TYPE_THRALL_PART4 6
#define DATA_THRALL 7
#define DATA_TARETHA 8
-#define DATA_EPOCH 9
+#define DATA_EPOCH 9
#define WORLD_STATE_OH 2436
#endif
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
index 8b0a62c4452..d03d53cd397 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
@@ -28,7 +28,7 @@ EndScriptData */
#define THRALL_ENTRY 17876
#define TARETHA_ENTRY 18887
-#define EPOCH_ENTRY 18096
+#define EPOCH_ENTRY 18096
#define DRAKE_ENTRY 17848
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
mThrallEventCount = 0;
ThrallGUID = 0;
TarethaGUID = 0;
- EpochGUID = 0;
+ EpochGUID = 0;
for(uint8 i = 0; i < ENCOUNTERS; i++)
Encounter[i] = NOT_STARTED;
@@ -106,9 +106,9 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
case TARETHA_ENTRY:
TarethaGUID = creature->GetGUID();
break;
- case EPOCH_ENTRY:
- EpochGUID = creature->GetGUID();
- break;
+ case EPOCH_ENTRY:
+ EpochGUID = creature->GetGUID();
+ break;
}
}
@@ -222,8 +222,8 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance
return ThrallGUID;
case DATA_TARETHA:
return TarethaGUID;
- case DATA_EPOCH:
- return EpochGUID;
+ case DATA_EPOCH:
+ return EpochGUID;
}
return 0;
}
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 9a01742abc8..55872937395 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -1021,9 +1021,6 @@ int ChatHandler::ParseCommands(const char* text)
std::string fullcmd = text;
- //if(m_session->GetSecurity() == 0)
- // return 0;
-
/// chat case (.command or !command format)
if(m_session)
{
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index 57d63948872..0672c38ee21 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -115,6 +115,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data )
else
{
sLog.outDebug( "WORLD: HandleGossipSelectOptionOpcode - unsupported GUID type for highguid %u. lowpart %u.", uint32(GUID_HIPART(guid)), uint32(GUID_LOPART(guid)) );
+ return;
}
// remove fake death
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 015bb6d3479..3ec11e83f81 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -1145,6 +1145,7 @@ WorldObject::WorldObject()
m_mapId = 0;
m_InstanceId = 0;
+ m_map = NULL;
m_name = "";
@@ -1674,12 +1675,14 @@ void WorldObject::SendObjectDeSpawnAnim(uint64 guid)
Map* WorldObject::GetMap() const
{
- return MapManager::Instance().GetMap(GetMapId(), this);
+ if(m_map) return m_map;
+ else return const_cast<Map*>(m_map) = MapManager::Instance().GetMap(GetMapId(), this);
}
Map* WorldObject::FindMap() const
{
- return MapManager::Instance().FindMap(GetMapId(), GetInstanceId());
+ if(m_map) return m_map;
+ else return const_cast<Map*>(m_map) = MapManager::Instance().FindMap(GetMapId(), GetInstanceId());
}
Map const* WorldObject::GetBaseMap() const
diff --git a/src/game/Object.h b/src/game/Object.h
index 83c2afbb880..9bb99af50de 100644
--- a/src/game/Object.h
+++ b/src/game/Object.h
@@ -439,8 +439,10 @@ class TRINITY_DLL_SPEC WorldObject : public Object
void GetRandomPoint( float x, float y, float z, float distance, float &rand_x, float &rand_y, float &rand_z ) const;
- void SetMapId(uint32 newMap) { m_mapId = newMap; }
+ void SetMapId(uint32 newMap) { m_mapId = newMap; m_map = NULL; }
uint32 GetMapId() const { return m_mapId; }
+ void SetInstanceId(uint32 val) { m_InstanceId = val; m_map = NULL; }
+ uint32 GetInstanceId() const { return m_InstanceId; }
virtual void SetPhaseMask(uint32 newPhaseMask, bool update);
uint32 GetPhaseMask() const { return m_phaseMask; }
@@ -502,9 +504,6 @@ class TRINITY_DLL_SPEC WorldObject : public Object
virtual void SaveRespawnTime() {}
- uint32 GetInstanceId() const { return m_InstanceId; }
- void SetInstanceId(uint32 val) { m_InstanceId = val; }
-
void AddObjectToRemoveList();
// main visibility check function in normal case (ignore grey zone distance check)
@@ -540,6 +539,7 @@ class TRINITY_DLL_SPEC WorldObject : public Object
uint32 m_mapId; // object at map with map_id
uint32 m_InstanceId; // in map copy with instance id
uint32 m_phaseMask; // in area phase state
+ Map *m_map;
float m_positionX;
float m_positionY;
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 930e58e17d6..7fd6194d73a 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -18246,7 +18246,7 @@ template<class T>
void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObject*>& visibleNow)
{
if(!target)
- return;
+ return;
if(HaveAtClient(target))
{
if(!target->isVisibleForInState(this,true))
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 09ad6501c4d..d8b50b10a91 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -4019,6 +4019,7 @@ void AuraEffect::HandleAuraModDecreaseSpeed(bool /*apply*/, bool Real)
if(!Real)
return;
+ //m_target->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
m_target->UpdateSpeed(MOVE_RUN, true);
m_target->UpdateSpeed(MOVE_SWIM, true);
m_target->UpdateSpeed(MOVE_FLIGHT, true);
@@ -5092,6 +5093,28 @@ void AuraEffect::HandleRangedAmmoHaste(bool apply, bool Real)
void AuraEffect::HandleAuraModAttackPower(bool apply, bool Real)
{
m_target->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(m_amount), apply);
+ if(apply)
+ switch(m_spellProto->Id){
+ // Warrior & Druid Demoshout should remove stealth
+ case 1160:
+ case 6190:
+ case 11554:
+ case 11555:
+ case 11556:
+ case 25202:
+ case 25203:
+ case 47437: //WotLK spell
+ case 99:
+ case 1735:
+ case 9490:
+ case 9747:
+ case 9898:
+ case 26998:
+ case 48559: //WotLK spell
+ case 48560: //WotLK spell
+ m_target->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+ break;
+ }
}
void AuraEffect::HandleAuraModRangedAttackPower(bool apply, bool Real)
diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp
index 7c606697ac3..4ca838ebc33 100644
--- a/src/game/WaypointMovementGenerator.cpp
+++ b/src/game/WaypointMovementGenerator.cpp
@@ -196,8 +196,9 @@ WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff)
if(node->delay)
i_nextMoveTime.Reset(node->delay);
+ //note: disable "start" for mtmap
if(node->event_id && rand()%100 < node->event_chance)
- sWorld.ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL);
+ sWorld.ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL, false);
MovementInform(unit);
unit.UpdateWaypointID(i_currentNode);