Merge branch 'master' into 4.x

Conflicts:
	sql/base/auth_database.sql
	src/server/authserver/Server/AuthSocket.cpp
	src/server/game/AI/CoreAI/CombatAI.cpp
	src/server/game/AuctionHouse/AuctionHouseMgr.cpp
	src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
	src/server/game/DataStores/DBCStructure.h
	src/server/game/DataStores/DBCfmt.h
	src/server/game/Entities/Unit/Unit.cpp
	src/server/game/Entities/Vehicle/Vehicle.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Globals/ObjectMgr.h
	src/server/game/Handlers/AuctionHouseHandler.cpp
	src/server/game/Miscellaneous/SharedDefines.h
	src/server/game/Movement/MotionMaster.cpp
	src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
	src/server/game/Quests/QuestDef.cpp
	src/server/game/Server/Protocol/Opcodes.cpp
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Spells/Spell.cpp
	src/server/game/Spells/SpellEffects.cpp
	src/server/game/Spells/SpellInfo.cpp
	src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
	src/server/scripts/Spells/spell_quest.cpp
	src/server/shared/Logging/Log.h
	src/server/worldserver/worldserver.conf.dist
	src/tools/vmap3_extractor/model.h
	src/tools/vmap4_extractor/CMakeLists.txt
	src/tools/vmap4_extractor/dbcfile.cpp
	src/tools/vmap4_extractor/dbcfile.h
	src/tools/vmap4_extractor/loadlib/loadlib.h
This commit is contained in:
Spp committed 2012-02-23 13:06:35 +01:00
commit 5cff9e0716
530 files changed
+42084 -9652

No files matched your search

+36 -2
View File
@@ -42,6 +42,8 @@
#include "zlib.h"
#include "ScriptMgr.h"
#include "Transport.h"
#include "WardenWin.h"
#include "WardenMac.h"
bool MapSessionFilter::Process(WorldPacket* packet)
{
@@ -98,6 +100,8 @@ m_sessionDbLocaleIndex(locale),
m_latency(0), m_TutorialsChanged(false), recruiterId(recruiter),
isRecruiter(isARecruiter), timeLastWhoCommand(0)
{
_warden = NULL;
if (sock)
{
m_Address = sock->GetRemoteAddress();
@@ -124,6 +128,9 @@ WorldSession::~WorldSession()
m_Socket = NULL;
}
if (_warden)
delete _warden;
///- empty incoming packet queue
WorldPacket* packet = NULL;
while (_recvQueue.next(packet))
@@ -144,6 +151,12 @@ char const* WorldSession::GetPlayerName() const
return GetPlayer() ? GetPlayer()->GetName() : "<none>";
}
/// Get player guid if available. Use for logging purposes only
uint32 WorldSession::GetGuidLow() const
{
return GetPlayer() ? GetPlayer()->GetGUIDLow() : 0;
}
/// Send a packet to the client
void WorldSession::SendPacket(WorldPacket const* packet)
{
@@ -349,6 +362,9 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
delete packet;
}
if (m_Socket && !m_Socket->IsClosed() && _warden)
_warden->Update();
ProcessQueryCallbacks();
//check if we are safe to proceed with logout
@@ -360,6 +376,9 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
if (ShouldLogOut(currTime) && !m_playerLoading)
LogoutPlayer(true);
if (m_Socket && GetPlayer() && _warden)
_warden->Update();
///- Cleanup socket pointer if need
if (m_Socket && m_Socket->IsClosed())
{
@@ -520,8 +539,8 @@ void WorldSession::LogoutPlayer(bool Save)
// calls to GetMap in this case may cause crashes
_player->CleanupsBeforeDelete();
sLog->outChar("Account: %d (IP: %s) Logout Character:[%s] (GUID: %u)", GetAccountId(), GetRemoteAddress().c_str(), _player->GetName(), _player->GetGUIDLow());
Map* _map = _player->GetMap();
_map->RemovePlayerFromMap(_player, true);
if (Map* _map = _player->FindMap())
_map->RemovePlayerFromMap(_player, true);
SetPlayer(NULL); // deleted in Remove call
///- Send the 'logout complete' packet to the client
@@ -997,3 +1016,18 @@ void WorldSession::ProcessQueryCallbacks()
_stableSwapCallback.FreeResult();
}
}
void WorldSession::InitWarden(BigNumber* k, std::string os)
{
if (os == "Win")
{
_warden = new WardenWin();
_warden->Init(this, k);
}
else if (os == "OSX")
{
// Disabled as it is causing the client to crash
// _warden = new WardenMac();
// _warden->Init(this, k);
}
}