mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/World: Move some packet code out of World.cpp
--HG-- branch : trunk
This commit is contained in:
46
src/server/game/Server/Protocol/Handlers/AuthHandler.cpp
Normal file
46
src/server/game/Server/Protocol/Handlers/AuthHandler.cpp
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "Opcodes.h"
|
||||
#include "WorldSession.h"
|
||||
#include "WorldPacket.h"
|
||||
|
||||
void WorldSession::SendAuthResponse(uint8 code, bool shortForm, uint32 queuePos)
|
||||
{
|
||||
WorldPacket packet(SMSG_AUTH_RESPONSE, 1 + 4 + 1 + 4 + 1 + (shortForm ? 0 : (4 + 1)));
|
||||
packet << uint8(code);
|
||||
packet << uint32(0); // BillingTimeRemaining
|
||||
packet << uint8(0); // BillingPlanFlags
|
||||
packet << uint32(0); // BillingTimeRested
|
||||
packet << uint8(Expansion()); // 0 - normal, 1 - TBC, 2 - WOTLK, must be set in database manually for each account
|
||||
|
||||
if (!shortForm)
|
||||
{
|
||||
packet << uint32(queuePos); // Queue position
|
||||
packet << uint8(0); // Unk 3.3.0
|
||||
}
|
||||
|
||||
SendPacket(&packet);
|
||||
}
|
||||
|
||||
void WorldSession::SendClientCacheVersion(uint32 version)
|
||||
{
|
||||
WorldPacket data(SMSG_CLIENTCACHE_VERSION, 4);
|
||||
data << uint32(version);
|
||||
SendPacket(&data);
|
||||
}
|
||||
@@ -160,6 +160,9 @@ class WorldSession
|
||||
void SendSetPhaseShift(uint32 phaseShift);
|
||||
void SendQueryTimeResponse();
|
||||
|
||||
void SendAuthResponse(uint8 code, bool shortForm, uint32 queuePos = 0);
|
||||
void SendClientCacheVersion(uint32 version);
|
||||
|
||||
AccountTypes GetSecurity() const { return _security; }
|
||||
uint32 GetAccountId() const { return _accountId; }
|
||||
Player* GetPlayer() const { return _player; }
|
||||
|
||||
@@ -218,7 +218,7 @@ void World::AddSession(WorldSession* s)
|
||||
}
|
||||
|
||||
void
|
||||
World::AddSession_ (WorldSession* s)
|
||||
World::AddSession_(WorldSession* s)
|
||||
{
|
||||
ASSERT (s);
|
||||
|
||||
@@ -270,19 +270,11 @@ World::AddSession_ (WorldSession* s)
|
||||
return;
|
||||
}
|
||||
|
||||
WorldPacket packet(SMSG_AUTH_RESPONSE, 1 + 4 + 1 + 4 + 1);
|
||||
packet << uint8(AUTH_OK);
|
||||
packet << uint32(0); // BillingTimeRemaining
|
||||
packet << uint8(0); // BillingPlanFlags
|
||||
packet << uint32(0); // BillingTimeRested
|
||||
packet << uint8(s->Expansion()); // 0 - normal, 1 - TBC, 2 - WOTLK, must be set in database manually for each account
|
||||
s->SendPacket(&packet);
|
||||
s->SendAuthResponse(AUTH_OK, true);
|
||||
|
||||
s->SendAddonsInfo();
|
||||
|
||||
WorldPacket pkt(SMSG_CLIENTCACHE_VERSION, 4);
|
||||
pkt << uint32(sWorld.getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
s->SendPacket(&pkt);
|
||||
s->SendClientCacheVersion(sWorld.getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
|
||||
s->SendTutorialsData();
|
||||
|
||||
@@ -337,15 +329,7 @@ void World::AddQueuedPlayer(WorldSession* sess)
|
||||
m_QueuedPlayer.push_back(sess);
|
||||
|
||||
// The 1st SMSG_AUTH_RESPONSE needs to contain other info too.
|
||||
WorldPacket packet(SMSG_AUTH_RESPONSE, 1+4+1+4+1+4+1);
|
||||
packet << uint8(AUTH_WAIT_QUEUE);
|
||||
packet << uint32(0); // BillingTimeRemaining
|
||||
packet << uint8(0); // BillingPlanFlags
|
||||
packet << uint32(0); // BillingTimeRested
|
||||
packet << uint8(sess->Expansion()); // 0 - normal, 1 - TBC, 2 - WOTLK, must be set in database manually for each account
|
||||
packet << uint32(GetQueuePos(sess)); // Queue position
|
||||
packet << uint8(0); // Unk 3.3.0
|
||||
sess->SendPacket(&packet);
|
||||
sess->SendAuthResponse(AUTH_WAIT_QUEUE, false, GetQueuePos(sess));
|
||||
}
|
||||
|
||||
bool World::RemoveQueuedPlayer(WorldSession* sess)
|
||||
@@ -387,10 +371,7 @@ bool World::RemoveQueuedPlayer(WorldSession* sess)
|
||||
pop_sess->SendAuthWaitQue(0);
|
||||
pop_sess->SendAddonsInfo();
|
||||
|
||||
WorldPacket pkt(SMSG_CLIENTCACHE_VERSION, 4);
|
||||
pkt << uint32(sWorld.getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
pop_sess->SendPacket(&pkt);
|
||||
|
||||
pop_sess->SendClientCacheVersion(sWorld.getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
pop_sess->SendAccountDataTimes(GLOBAL_CACHE_MASK);
|
||||
pop_sess->SendTutorialsData();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user