diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 9 |
3 files changed, 15 insertions, 12 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index f5f6d25b723..ec384f9a995 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -22,8 +22,6 @@ #include "World.h" #include "WorldPacket.h" #include "DatabaseEnv.h" - - #include "AchievementMgr.h" #include "ArenaTeam.h" #include "CellImpl.h" @@ -35,7 +33,7 @@ #include "ProgressBar.h" #include "SpellMgr.h" #include "DisableMgr.h" - +#include "ScriptMgr.h" #include "MapManager.h" #include "BattleGround.h" #include "BattleGroundAB.h" @@ -314,7 +312,7 @@ bool AchievementCriteriaData::Meets(uint32 criteria_id, Player const* source, Un return false; return target->getGender() == gender.gender; case ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT: - return sScriptMgr.OnCriteriaCheck(source, target); + return sScriptMgr.OnCriteriaCheck(this, const_cast<Player*>(source), const_cast<Unit*>(target)); case ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_DIFFICULTY: return source->GetMap()->GetSpawnMode() == difficulty.difficulty; case ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_PLAYER_COUNT: diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index dc405c53e53..9917cfbe8a0 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -168,6 +168,7 @@ ScriptMgr::~ScriptMgr() SCR_CLEAR(VehicleScript); SCR_CLEAR(DynamicObjectScript); SCR_CLEAR(TransportScript); + SCR_CLEAR(AchievementCriteriaScript); #undef SCR_CLEAR } @@ -355,21 +356,21 @@ void ScriptMgr::OnSocketClose(WorldSocket* socket, bool wasNew) FOREACH_SCRIPT(ServerScript)->OnSocketClose(socket, wasNew); } -void ScriptMgr::OnPacketReceive(WorldSocket* socket, WorldPacket& packet) +void ScriptMgr::OnPacketReceive(WorldSocket* socket, WorldPacket packet) { ASSERT(socket); FOREACH_SCRIPT(ServerScript)->OnPacketReceive(socket, packet); } -void ScriptMgr::OnPacketSend(WorldSocket* socket, WorldPacket& packet) +void ScriptMgr::OnPacketSend(WorldSocket* socket, WorldPacket packet) { ASSERT(socket); FOREACH_SCRIPT(ServerScript)->OnPacketSend(socket, packet); } -void ScriptMgr::OnUnknownPacketReceive(WorldSocket* socket, WorldPacket& packet) +void ScriptMgr::OnUnknownPacketReceive(WorldSocket* socket, WorldPacket packet) { ASSERT(socket); @@ -503,6 +504,7 @@ void ScriptMgr::OnDestroyMap(Map* map) void ScriptMgr::OnLoadGridMap(Map* map, GridMap* gmap, uint32 gx, uint32 gy) { ASSERT(map); + ASSERT(gmap); SCR_MAP_BGN(WorldMapScript, map, itr, end, entry, IsContinent); itr->second->OnLoadGridMap(map, gmap, gx, gy); @@ -520,6 +522,7 @@ void ScriptMgr::OnLoadGridMap(Map* map, GridMap* gmap, uint32 gx, uint32 gy) void ScriptMgr::OnUnloadGridMap(Map* map, GridMap* gmap, uint32 gx, uint32 gy) { ASSERT(map); + ASSERT(gmap); SCR_MAP_BGN(WorldMapScript, map, itr, end, entry, IsContinent); itr->second->OnUnloadGridMap(map, gmap, gx, gy); @@ -923,6 +926,7 @@ bool ScriptMgr::OnConditionCheck(Condition* condition, Player* player, Unit* tar { ASSERT(condition); ASSERT(player); + // targetOverride can be NULL. GET_SCRIPT_RET(ConditionScript, condition->mScriptId, tmpscript, true); return tmpscript->OnConditionCheck(condition, player, targetOverride); @@ -1056,7 +1060,7 @@ void ScriptMgr::OnShutdown() bool ScriptMgr::OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target) { ASSERT(source); - // target can be NULL + // target can be NULL. GET_SCRIPT_RET(AchievementCriteriaScript, data->ScriptId, tmpscript, false); return tmpscript->OnCheck(source, target); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index c27a169880c..4ea345d142a 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -35,6 +35,7 @@ #include "ConditionMgr.h" #include "Vehicle.h" #include "Transport.h" +#include "AchievementMgr.h" class Player; class Creature; @@ -768,7 +769,7 @@ class AchievementCriteriaScript : public ScriptObject bool IsDatabaseBound() const { return true; } - // Called when additional criteria is checked + // Called when an additional criteria is checked. virtual bool OnCheck(Player* source, Unit* target) = 0; }; @@ -813,9 +814,9 @@ class ScriptMgr void OnNetworkStop(); void OnSocketOpen(WorldSocket* socket); void OnSocketClose(WorldSocket* socket, bool wasNew); - void OnPacketReceive(WorldSocket* socket, WorldPacket& packet); - void OnPacketSend(WorldSocket* socket, WorldPacket& packet); - void OnUnknownPacketReceive(WorldSocket* socket, WorldPacket& packet); + void OnPacketReceive(WorldSocket* socket, WorldPacket packet); + void OnPacketSend(WorldSocket* socket, WorldPacket packet); + void OnUnknownPacketReceive(WorldSocket* socket, WorldPacket packet); public: /* WorldScript */ |