* Remove last occurrences of clientbuild and hardcoded build numbers

This commit is contained in:
shlainn 2011-09-15 15:38:57 +02:00
parent c024fac446
commit 3845d3b51c
7 changed files with 36 additions and 39 deletions

View File

@ -248,9 +248,9 @@ void RealmSession::_HandleRealmList(ByteBuffer& pkt)
std::string realmAddr; std::string realmAddr;
SRealmHeader rh; SRealmHeader rh;
uint16 cb = GetInstance()->GetConf()->clientbuild; uint16 client = GetInstance()->GetConf()->client;
pkt >> rh.cmd >> rh.size >> rh.unknown; pkt >> rh.cmd >> rh.size >> rh.unknown;
if(cb<=6005) if(client==CLIENT_CLASSIC_WOW)
{ {
uint8 count; uint8 count;
pkt >> count; pkt >> count;
@ -272,7 +272,7 @@ void RealmSession::_HandleRealmList(ByteBuffer& pkt)
// readout realms // readout realms
for(uint8 i=0;i<rh.count;i++) for(uint8 i=0;i<rh.count;i++)
{ {
if(cb<=6005) if(client==CLIENT_CLASSIC_WOW)
{ {
uint32 icon; uint32 icon;
pkt >> icon; pkt >> icon;
@ -539,8 +539,6 @@ void RealmSession::_HandleLogonChallenge(ByteBuffer& pkt)
packet.append(M1hash.GetDigest(),M1hash.GetLength()); packet.append(M1hash.GetDigest(),M1hash.GetLength());
packet.append(crc_hash,20); packet.append(crc_hash,20);
packet << (uint8)0; // number of keys = 0 packet << (uint8)0; // number of keys = 0
if(GetInstance()->GetConf()->clientbuild > 5302)
packet << (uint8)0; // 1.11.x compatibility (needs one more 0) packet << (uint8)0; // 1.11.x compatibility (needs one more 0)
GetInstance()->SetSessionKey(_key); GetInstance()->SetSessionKey(_key);
@ -561,7 +559,7 @@ void RealmSession::_HandleLogonChallenge(ByteBuffer& pkt)
void RealmSession::_HandleLogonProof(ByteBuffer& pkt) void RealmSession::_HandleLogonProof(ByteBuffer& pkt)
{ {
PseuGUI *gui = GetInstance()->GetGUI(); PseuGUI *gui = GetInstance()->GetGUI();
logdebug("RealmSocket: Got AUTH_LOGON_PROOF [%u of %u bytes]",pkt.size(),(GetInstance()->GetConf()->clientbuild>6005 ? sizeof(sAuthLogonProof_S) : sizeof(sAuthLogonProof_S_6005))); logdebug("RealmSocket: Got AUTH_LOGON_PROOF [%u of %u bytes]",pkt.size(),(GetInstance()->GetConf()->client>CLIENT_CLASSIC_WOW ? sizeof(sAuthLogonProof_S) : sizeof(sAuthLogonProof_S_6005)));
if(pkt.size() < 2) if(pkt.size() < 2)
{ {
logerror("AUTH_LOGON_PROOF: Recieved incorrect/unknown packet. Hexdump:"); logerror("AUTH_LOGON_PROOF: Recieved incorrect/unknown packet. Hexdump:");
@ -612,7 +610,7 @@ void RealmSession::_HandleLogonProof(ByteBuffer& pkt)
sAuthLogonProof_S lp; sAuthLogonProof_S lp;
if(GetInstance()->GetConf()->clientbuild<=6005) if(GetInstance()->GetConf()->client==CLIENT_CLASSIC_WOW)
{ {
sAuthLogonProof_S_6005 lp6005; sAuthLogonProof_S_6005 lp6005;
pkt.read((uint8*)&lp6005, sizeof(sAuthLogonProof_S_6005)); pkt.read((uint8*)&lp6005, sizeof(sAuthLogonProof_S_6005));

View File

@ -81,7 +81,7 @@ void Channel::Join(std::string channel, std::string password)
// Send join channel request // Send join channel request
WorldPacket worldPacket; WorldPacket worldPacket;
worldPacket.SetOpcode(CMSG_JOIN_CHANNEL); worldPacket.SetOpcode(CMSG_JOIN_CHANNEL);
if(_worldSession->GetInstance()->GetConf()->clientbuild > 6005) if(_worldSession->GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
worldPacket << (uint32)0; // new since 2.0.x, some channel ID? server answers us with that number later if channel joined worldPacket << (uint32)0; // new since 2.0.x, some channel ID? server answers us with that number later if channel joined
worldPacket << (uint8)0; // unk worldPacket << (uint8)0; // unk

View File

@ -17,7 +17,7 @@ void WorldSession::_HandleItemQuerySingleResponseOpcode(WorldPacket& recvPacket)
proto->Id = ItemID; proto->Id = ItemID;
recvPacket >> proto->Class; recvPacket >> proto->Class;
recvPacket >> proto->SubClass; recvPacket >> proto->SubClass;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> unk; // dont need that value? recvPacket >> unk; // dont need that value?
} }

View File

@ -111,7 +111,7 @@ void WorldSession::_HandleDestroyObjectOpcode(WorldPacket& recvPacket)
uint8 dummy; uint8 dummy;
recvPacket >> guid; recvPacket >> guid;
if(GetInstance()->GetConf()->clientbuild>6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
recvPacket >> dummy; recvPacket >> dummy;
logdebug("Destroy Object "I64FMT,guid); logdebug("Destroy Object "I64FMT,guid);

View File

@ -2,7 +2,6 @@
#include "ZCompressor.h" #include "ZCompressor.h"
#include "WorldSession.h" #include "WorldSession.h"
#include "UpdateData.h" #include "UpdateData.h"
#include "UpdateFields.h"
#include "Object.h" #include "Object.h"
#include "Unit.h" #include "Unit.h"
#include "Bag.h" #include "Bag.h"
@ -41,7 +40,7 @@ void WorldSession::_HandleUpdateObjectOpcode(WorldPacket& recvPacket)
uint32 usize, ublocks, readblocks=0; uint32 usize, ublocks, readblocks=0;
uint64 uguid; uint64 uguid;
recvPacket >> ublocks; // >> hasTransport; recvPacket >> ublocks; // >> hasTransport;
if(GetInstance()->GetConf()->clientbuild <= 6005) if(GetInstance()->GetConf()->client == CLIENT_CLASSIC_WOW)
recvPacket >> hasTransport; recvPacket >> hasTransport;
logdev("UpdateObject: blocks = %u", ublocks); logdev("UpdateObject: blocks = %u", ublocks);
@ -245,7 +244,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
float speedWalk =0, speedRun =0, speedSwimBack =0, speedSwim =0, speedWalkBack =0, speedTurn =0, speedFly =0, speedFlyBack =0, speedPitchRate =0; float speedWalk =0, speedRun =0, speedSwimBack =0, speedSwim =0, speedWalkBack =0, speedTurn =0, speedFly =0, speedFlyBack =0, speedPitchRate =0;
uint32 unk32; uint32 unk32;
uint16 cb = GetInstance()->GetConf()->clientbuild; uint16 client = GetInstance()->GetConf()->client;
Object *obj = (Object*)objmgr.GetObj(uguid, true); // also depleted objects Object *obj = (Object*)objmgr.GetObj(uguid, true); // also depleted objects
Unit *u = NULL; Unit *u = NULL;
@ -261,7 +260,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
logerror("MovementUpdate for unknown object "I64FMT" typeid=%u",uguid,objtypeid); logerror("MovementUpdate for unknown object "I64FMT" typeid=%u",uguid,objtypeid);
} }
if(cb > 6005) if(client > CLIENT_CLASSIC_WOW)
recvPacket >> flags; recvPacket >> flags;
else else
{ {
@ -273,7 +272,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
if(flags & UPDATEFLAG_LIVING) if(flags & UPDATEFLAG_LIVING)
{ {
recvPacket >> mi.flags; recvPacket >> mi.flags;
if(cb > 6005) if(client > CLIENT_CLASSIC_WOW)
recvPacket >> mi.unkFlags; recvPacket >> mi.unkFlags;
recvPacket>> mi.time; recvPacket>> mi.time;
@ -315,10 +314,10 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
} }
recvPacket >> speedWalk >> speedRun >> speedSwimBack >> speedSwim >> speedWalkBack; // speedRun can also be mounted speed if player is mounted; WalkBack is called RunBack in Mangos recvPacket >> speedWalk >> speedRun >> speedSwimBack >> speedSwim >> speedWalkBack; // speedRun can also be mounted speed if player is mounted; WalkBack is called RunBack in Mangos
if(cb > 6005) if(client > CLIENT_CLASSIC_WOW)
recvPacket >> speedFly >> speedFlyBack; // fly added in 2.0.x recvPacket >> speedFly >> speedFlyBack; // fly added in 2.0.x
recvPacket >> speedTurn; recvPacket >> speedTurn;
if(cb > 6005) if(client > CLIENT_CLASSIC_WOW)
recvPacket >> speedPitchRate; recvPacket >> speedPitchRate;
logdev("MovementUpdate: Got speeds, walk=%f run=%f turn=%f", speedWalk, speedRun, speedTurn); logdev("MovementUpdate: Got speeds, walk=%f run=%f turn=%f", speedWalk, speedRun, speedTurn);
if(u) if(u)
@ -375,20 +374,20 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
} }
} }
if(cb > 6005 && flags & UPDATEFLAG_LOWGUID) if(client > CLIENT_CLASSIC_WOW && flags & UPDATEFLAG_LOWGUID)
{ {
recvPacket >> unk32; recvPacket >> unk32;
logdev("MovementUpdate: UPDATEFLAG_LOWGUID is set, got %X", unk32); logdev("MovementUpdate: UPDATEFLAG_LOWGUID is set, got %X", unk32);
} }
if(cb > 6005 && flags & UPDATEFLAG_HIGHGUID) if(client > CLIENT_CLASSIC_WOW && flags & UPDATEFLAG_HIGHGUID)
{ {
recvPacket >> unk32; // 2.0.6 - high guid was there, unk for 2.0.12 recvPacket >> unk32; // 2.0.6 - high guid was there, unk for 2.0.12
// not sure if this is correct, MaNGOS sends 0 always. // not sure if this is correct, MaNGOS sends 0 always.
//obj->SetUInt32Value(OBJECT_FIELD_GUID+1,higuid); // note that this sets only the high part of the guid //obj->SetUInt32Value(OBJECT_FIELD_GUID+1,higuid); // note that this sets only the high part of the guid
logdev("MovementUpdate: UPDATEFLAG_HIGHGUID is set, got %X", unk32); logdev("MovementUpdate: UPDATEFLAG_HIGHGUID is set, got %X", unk32);
} }
if(cb <= 6005 && flags & UPDATEFLAG_ALL_6005) if(client == CLIENT_CLASSIC_WOW && flags & UPDATEFLAG_ALL_6005)
{ {
recvPacket >> unk32; recvPacket >> unk32;
// MaNGOS sends 1 always. // MaNGOS sends 1 always.
@ -404,7 +403,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
if(flags & UPDATEFLAG_TRANSPORT) if(flags & UPDATEFLAG_TRANSPORT)
{ {
recvPacket >> unk32; // whats this used for? recvPacket >> unk32; // mangos says: ms time
logdev("MovementUpdate: UPDATEFLAG_TRANSPORT is set, got %u", unk32); logdev("MovementUpdate: UPDATEFLAG_TRANSPORT is set, got %u", unk32);
} }

View File

@ -560,7 +560,7 @@ void WorldSession::_HandleAuthChallengeOpcode(WorldPacket& recvPacket)
{ {
//Read Packet //Read Packet
uint32 sp, serverseed; uint32 sp, serverseed;
if(GetInstance()->GetConf()->clientbuild>6005)//TODO: Check TBC if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)//TODO: Check TBC
{ {
recvPacket >> sp; recvPacket >> sp;
} }
@ -585,7 +585,7 @@ void WorldSession::_HandleAuthChallengeOpcode(WorldPacket& recvPacket)
// Send Reply // Send Reply
WorldPacket auth; WorldPacket auth;
if(GetInstance()->GetConf()->clientbuild<=6005) if(GetInstance()->GetConf()->client==CLIENT_CLASSIC_WOW)
{ {
auth<<(uint32)(GetInstance()->GetConf()->clientbuild)<<unk<<acc<<clientseed_uint32; auth<<(uint32)(GetInstance()->GetConf()->clientbuild)<<unk<<acc<<clientseed_uint32;
auth.append(digest.GetDigest(),20); auth.append(digest.GetDigest(),20);
@ -612,7 +612,7 @@ void WorldSession::_HandleAuthResponseOpcode(WorldPacket& recvPacket)
uint8 BillingPlanFlags, expansion; uint32 BillingTimeRemaining, BillingTimeRested; uint8 BillingPlanFlags, expansion; uint32 BillingTimeRemaining, BillingTimeRested;
recvPacket >> errcode; recvPacket >> errcode;
recvPacket >> BillingTimeRemaining >> BillingPlanFlags >> BillingTimeRested; recvPacket >> BillingTimeRemaining >> BillingPlanFlags >> BillingTimeRested;
if(GetInstance()->GetConf()->clientbuild >6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
recvPacket >> expansion; recvPacket >> expansion;
// TODO: add data to generic_text.scp and use the strings here // TODO: add data to generic_text.scp and use the strings here
if(errcode == AUTH_OK) if(errcode == AUTH_OK)
@ -670,7 +670,7 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket)
recvPacket >> plr[i]._z; recvPacket >> plr[i]._z;
recvPacket >> plr[i]._guildId; recvPacket >> plr[i]._guildId;
recvPacket >> plr[i]._flags; recvPacket >> plr[i]._flags;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> dummy32; // at_login_customize recvPacket >> dummy32; // at_login_customize
} }
@ -681,7 +681,7 @@ void WorldSession::_HandleCharEnumOpcode(WorldPacket& recvPacket)
for(unsigned int inv=0;inv<20;inv++) for(unsigned int inv=0;inv<20;inv++)
{ {
recvPacket >> plr[i]._items[inv].displayId >> plr[i]._items[inv].inventorytype ; recvPacket >> plr[i]._items[inv].displayId >> plr[i]._items[inv].inventorytype ;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> dummy32; // whatever recvPacket >> dummy32; // whatever
} }
@ -886,7 +886,7 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket) //TODO: REW
if(lang == LANG_ADDON && GetInstance()->GetConf()->skipaddonchat) if(lang == LANG_ADDON && GetInstance()->GetConf()->skipaddonchat)
return; return;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> source_guid; recvPacket >> source_guid;
recvPacket >> unk32; recvPacket >> unk32;
@ -1081,7 +1081,7 @@ void WorldSession::_HandleNameQueryResponseOpcode(WorldPacket& recvPacket)
uint8 realm; uint8 realm;
std::string pname; std::string pname;
uint32 prace, pgender, pclass; uint32 prace, pgender, pclass;
if(GetInstance()->GetConf()->clientbuild>6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
pguid = recvPacket.GetPackedGuid(); pguid = recvPacket.GetPackedGuid();
else else
recvPacket >> pguid; recvPacket >> pguid;
@ -1138,7 +1138,7 @@ void WorldSession::_HandleMovementOpcode(WorldPacket& recvPacket)
uint16 flags2; uint16 flags2;
guid = recvPacket.GetPackedGuid(); guid = recvPacket.GetPackedGuid();
recvPacket >> flags; recvPacket >> flags;
if(GetInstance()->GetConf()->clientbuild>6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> flags2; recvPacket >> flags2;
} }
@ -1429,7 +1429,7 @@ void WorldSession::_HandleInitialSpellsOpcode(WorldPacket& recvPacket)
uint32 spellid; uint32 spellid;
recvPacket >> unk >> count; recvPacket >> unk >> count;
logdebug("Got initial spells list, %u spells.",count); logdebug("Got initial spells list, %u spells.",count);
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
for(uint16 i = 0; i < count; i++) for(uint16 i = 0; i < count; i++)
{ {
@ -1709,13 +1709,13 @@ void WorldSession::_HandleCreatureQueryResponseOpcode(WorldPacket& recvPacket)
recvPacket >> s; recvPacket >> s;
recvPacket >> s; recvPacket >> s;
recvPacket >> ct->subname; recvPacket >> ct->subname;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
recvPacket >> ct->directions; recvPacket >> ct->directions;
recvPacket >> ct->flag1; recvPacket >> ct->flag1;
recvPacket >> ct->type; recvPacket >> ct->type;
recvPacket >> ct->family; recvPacket >> ct->family;
recvPacket >> ct->rank; recvPacket >> ct->rank;
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
for(uint32 i = 0; i < MAX_KILL_CREDIT; i++) for(uint32 i = 0; i < MAX_KILL_CREDIT; i++)
recvPacket >> ct->killCredit[i]; recvPacket >> ct->killCredit[i];
@ -1775,7 +1775,7 @@ void WorldSession::_HandleGameobjectQueryResponseOpcode(WorldPacket& recvPacket)
recvPacket >> other_names; // name1 recvPacket >> other_names; // name1
recvPacket >> other_names; // name2 recvPacket >> other_names; // name2
recvPacket >> other_names; // name3 (all unused) recvPacket >> other_names; // name3 (all unused)
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> unks; recvPacket >> unks;
recvPacket >> go->castBarCaption; recvPacket >> go->castBarCaption;
@ -1783,7 +1783,7 @@ void WorldSession::_HandleGameobjectQueryResponseOpcode(WorldPacket& recvPacket)
} }
for(uint32 i = 0; i < GAMEOBJECT_DATA_FIELDS; i++) for(uint32 i = 0; i < GAMEOBJECT_DATA_FIELDS; i++)
recvPacket >> go->raw.data[i]; recvPacket >> go->raw.data[i];
if(GetInstance()->GetConf()->clientbuild > 6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
recvPacket >> go->size; recvPacket >> go->size;
for(uint32 i = 0; i < 4; i++) for(uint32 i = 0; i < 4; i++)
@ -1839,7 +1839,7 @@ void WorldSession::_HandleMonsterMoveOpcode(WorldPacket& recvPacket)
uint8 unk, type; uint8 unk, type;
uint32 time, flags, movetime, waypoints; uint32 time, flags, movetime, waypoints;
float x, y, z; float x, y, z;
if(GetInstance()->GetConf()->clientbuild>6005) if(GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
recvPacket >> unk; recvPacket >> unk;
recvPacket >> x >> y >> z >> time >> type; recvPacket >> x >> y >> z >> time >> type;

View File

@ -84,7 +84,7 @@ void WorldSocket::OnRead()
break; break;
} }
if(GetSession()->GetInstance()->GetConf()->clientbuild > 6005) if(GetSession()->GetInstance()->GetConf()->client > CLIENT_CLASSIC_WOW)
{ {
// read first byte and check if size is 3 or 2 bytes // read first byte and check if size is 3 or 2 bytes
uint8 firstSizeByte; uint8 firstSizeByte;
@ -166,9 +166,9 @@ void WorldSocket::SendWorldPacket(WorldPacket &pkt)
void WorldSocket::InitCrypt(BigNumber *k) void WorldSocket::InitCrypt(BigNumber *k)
{ {
//As crypt //As crypt
switch(GetSession()->GetInstance()->GetConf()->clientbuild) switch(GetSession()->GetInstance()->GetConf()->client)
{ {
case 6005: case CLIENT_CLASSIC_WOW:
{ {
logdebug("Setting Crypt to Build 6005"); logdebug("Setting Crypt to Build 6005");
pInit = &AuthCrypt::Init_6005; pInit = &AuthCrypt::Init_6005;