[7911] Applied coding style.

This commit is contained in:
tomrus88 2009-05-29 19:06:04 +04:00
parent ec1d6a3b56
commit 42f8ce5f3e
58 changed files with 1452 additions and 1459 deletions

View file

@ -24,6 +24,7 @@ void fixnamen(char *name, size_t len)
} }
} }
} }
void fixname2(char *name, size_t len) void fixname2(char *name, size_t len)
{ {
for (size_t i=0; i<len-3; i++) for (size_t i=0; i<len-3; i++)
@ -44,10 +45,10 @@ bool ADTFile::init(char *map_id)
return false; return false;
size_t size; size_t size;
string xMap; string xMap;
string yMap; string yMap;
Adtfilename.erase(Adtfilename.find(".adt"),4); Adtfilename.erase(Adtfilename.find(".adt"),4);
string TempMapNumber; string TempMapNumber;
TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6); TempMapNumber = Adtfilename.substr(Adtfilename.length()-6,6);
@ -69,7 +70,6 @@ bool ADTFile::init(char *map_id)
return false; return false;
} }
while (!ADT.isEof()) while (!ADT.isEof())
{ {
char fourcc[5]; char fourcc[5];
@ -82,7 +82,6 @@ bool ADTFile::init(char *map_id)
if (!strcmp(fourcc,"MCIN")) if (!strcmp(fourcc,"MCIN"))
{ {
} }
else if (!strcmp(fourcc,"MTEX")) else if (!strcmp(fourcc,"MTEX"))
{ {
@ -96,7 +95,7 @@ bool ADTFile::init(char *map_id)
char *p=buf; char *p=buf;
int t=0; int t=0;
ModelInstansName = new string[size]; ModelInstansName = new string[size];
while (p<buf+size) while (p<buf+size)
{ {
fixnamen(p,strlen(p)); fixnamen(p,strlen(p));
string path(p); string path(p);
@ -130,10 +129,8 @@ bool ADTFile::init(char *map_id)
else else
fclose(output); fclose(output);
} }
delete[] buf; delete[] buf;
} }
} }
else if (!strcmp(fourcc,"MWMO")) else if (!strcmp(fourcc,"MWMO"))
{ {
@ -144,7 +141,7 @@ bool ADTFile::init(char *map_id)
char *p=buf; char *p=buf;
int q = 0; int q = 0;
WmoInstansName = new string[size]; WmoInstansName = new string[size];
while (p<buf+size) while (p<buf+size)
{ {
string path(p); string path(p);
char* s=GetPlainName(p); char* s=GetPlainName(p);
@ -186,7 +183,7 @@ bool ADTFile::init(char *map_id)
} }
} }
//====================== //======================
#if 0 #if 0
else if (!strcmp(fourcc,"MDDF")) else if (!strcmp(fourcc,"MDDF"))
{ {
if (size) if (size)

View file

@ -36,7 +36,7 @@ bool DBCFile::open()
f.read(&nb,4); // Number of fields f.read(&nb,4); // Number of fields
f.read(&es,4); // Size of a record f.read(&es,4); // Size of a record
f.read(&ss,4); // String size f.read(&ss,4); // String size
recordSize = es; recordSize = es;
recordCount = na; recordCount = na;
fieldCount = nb; fieldCount = nb;

View file

@ -91,7 +91,7 @@ public:
class Iterator class Iterator
{ {
public: public:
Iterator(DBCFile &file, unsigned char *offset): Iterator(DBCFile &file, unsigned char *offset):
record(file, offset) {} record(file, offset) {}
/// Advance (prefix only) /// Advance (prefix only)
Iterator & operator++() { Iterator & operator++() {

View file

@ -39,7 +39,6 @@ MPQArchiveSet::~MPQArchiveSet()
ar_itr->close(); ar_itr->close();
} }
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MPQFile::MPQFile(const char* filename): MPQFile::MPQFile(const char* filename):
eof(false), eof(false),
buffer(0), buffer(0),
@ -72,7 +71,6 @@ MPQFile::MPQFile(const char* filename):
eof = true; eof = true;
buffer = 0; buffer = 0;
} }
MPQFile::~MPQFile() MPQFile::~MPQFile()

View file

@ -38,7 +38,7 @@ class MPQArchiveSet
}; };
extern MPQArchiveSet gOpenArchives; extern MPQArchiveSet gOpenArchives;
class MPQFile class MPQFile
{ {
HANDLE hFile; HANDLE hFile;

View file

@ -118,7 +118,7 @@ class Vec2D
{ {
public: public:
float x,y; float x,y;
Vec2D(float x0 = 0.0f, float y0 = 0.0f) : x(x0), y(y0) {} Vec2D(float x0 = 0.0f, float y0 = 0.0f) : x(x0), y(y0) {}
Vec2D(const Vec2D& v) : x(v.x), y(v.y) {} Vec2D(const Vec2D& v) : x(v.x), y(v.y) {}

View file

@ -24,7 +24,7 @@
#define __STORMLIB_SELF__ // Don't use StormLib.lib #define __STORMLIB_SELF__ // Don't use StormLib.lib
#include "StormLib.h" #include "StormLib.h"
#pragma warning(disable : 4505) #pragma warning(disable : 4505)
#pragma comment(lib, "Winmm.lib") #pragma comment(lib, "Winmm.lib")
//From Extractor //From Extractor
@ -44,7 +44,8 @@
typedef unsigned char uint8; typedef unsigned char uint8;
typedef unsigned short uint16; typedef unsigned short uint16;
typedef unsigned int uint32; typedef unsigned int uint32;
typedef struct{ typedef struct
{
char name[64]; char name[64];
unsigned int id; unsigned int id;
}map_id; }map_id;
@ -104,7 +105,6 @@ static void ShowProcessedFile(const char * szFileName)
printf("\r%s\n", szFileName); printf("\r%s\n", szFileName);
} }
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------
int ExtractWmo() int ExtractWmo()
{ {
char* szListFile = ""; char* szListFile = "";
@ -205,7 +205,6 @@ int ExtractWmo()
// Close the search handle // Close the search handle
if(hFind != NULL) if(hFind != NULL)
SFileFindClose(hFind); SFileFindClose(hFind);
} }
} }
@ -523,9 +522,9 @@ int main(int argc, char ** argv)
nError = GetLastError(); nError = GetLastError();
if(nError == ERROR_ALREADY_EXISTS) if(nError == ERROR_ALREADY_EXISTS)
nError = ERROR_SUCCESS; nError = ERROR_SUCCESS;
} }
// prepare archive name list // prepare archive name list
std::vector<std::string> archiveNames; std::vector<std::string> archiveNames;
fillArchiveNameVector(archiveNames); fillArchiveNameVector(archiveNames);
if(!gOpenArchives.Open(archiveNames)) if(!gOpenArchives.Open(archiveNames))

View file

@ -106,7 +106,8 @@ WDTFile::~WDTFile(void)
ADTFile* WDTFile::GetMap(int x, int z) ADTFile* WDTFile::GetMap(int x, int z)
{ {
if(!(x>=0 && z >= 0 && x<64 && z<64)) return NULL; if(!(x>=0 && z >= 0 && x<64 && z<64))
return NULL;
char name[512]; char name[512];

View file

@ -295,7 +295,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
{ {
int LIQU_h[] = {0x5551494C,LiquEx_size+8,hlq_xverts,hlq_yverts};// "LIQU" int LIQU_h[] = {0x5551494C,LiquEx_size+8,hlq_xverts,hlq_yverts};// "LIQU"
fwrite(LIQU_h,4,4,output); fwrite(LIQU_h,4,4,output);
fwrite(LiquEx,4,LiquEx_size/4,output); fwrite(LiquEx,4,LiquEx_size/4,output);
delete [] LiquEx; delete [] LiquEx;
} }
@ -305,7 +305,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
{ {
//printf("Convert GroupWmo...\n"); //printf("Convert GroupWmo...\n");
//-------GRP ------------------------------------- //-------GRP -------------------------------------
fwrite(&liquflags,sizeof(uint32),1,output); fwrite(&liquflags,sizeof(uint32),1,output);
char GRP[] = "GRP "; char GRP[] = "GRP ";
fwrite(GRP,1,4,output); fwrite(GRP,1,4,output);
int k = 0; int k = 0;
@ -317,7 +317,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
} }
delete [] MOBA; delete [] MOBA;
int moba_size_grp = moba_batch*4+4; int moba_size_grp = moba_batch*4+4;
fwrite(&moba_size_grp,4,1,output); fwrite(&moba_size_grp,4,1,output);
fwrite(&moba_batch,4,1,output); fwrite(&moba_batch,4,1,output);
fwrite(MobaEx,4,k,output); fwrite(MobaEx,4,k,output);
delete [] MobaEx; delete [] MobaEx;
@ -335,7 +335,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
continue; continue;
// Use only this triangles // Use only this triangles
if ((int)MOPY[i]&(WMO_MATERIAL_HINT|WMO_MATERIAL_COLLIDE_HIT)) if ((int)MOPY[i]&(WMO_MATERIAL_HINT|WMO_MATERIAL_COLLIDE_HIT))
{ {
MopyEx[n] = MOPY[i]; MopyEx[n] = MOPY[i];
MopyEx[(n+1)] = MOPY[(i+1)]; MopyEx[(n+1)] = MOPY[(i+1)];
IndexExTr[j] = i/2; IndexExTr[j] = i/2;
@ -454,7 +454,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, bool pPreciseVectorData)
delete [] MovtEx; delete [] MovtEx;
delete [] MovtExSort; delete [] MovtExSort;
//--------------------------------------------- //---------------------------------------------
return IndexExTr_size; return IndexExTr_size;
} }
} }

View file

@ -37,7 +37,7 @@ public:
WMORoot(std::string &filename); WMORoot(std::string &filename);
~WMORoot(); ~WMORoot();
bool open(); bool open();
bool ConvertToVMAPRootWmo(FILE *output); bool ConvertToVMAPRootWmo(FILE *output);
private: private:

View file

@ -1536,7 +1536,7 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
return; return;
// titles // titles
if(uint32 titleId = reward->titleId[GetPlayer()->GetTeam() == HORDE?0:1]) if(uint32 titleId = reward->titleId[GetPlayer()->GetTeam() == HORDE ? 0 : 1])
{ {
if(CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(titleId)) if(CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(titleId))
GetPlayer()->SetTitle(titleEntry); GetPlayer()->SetTitle(titleEntry);

View file

@ -26,7 +26,7 @@
#include "World.h" #include "World.h"
#include "SocialMgr.h" #include "SocialMgr.h"
void WorldSession::HandleInspectArenaStatsOpcode(WorldPacket & recv_data) void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recv_data)
{ {
sLog.outDebug("MSG_INSPECT_ARENA_TEAMS"); sLog.outDebug("MSG_INSPECT_ARENA_TEAMS");
@ -82,9 +82,9 @@ void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket & recv_data)
arenateam->Roster(this); arenateam->Roster(this);
} }
void WorldSession::HandleArenaTeamAddMemberOpcode(WorldPacket & recv_data) void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket & recv_data)
{ {
sLog.outDebug("CMSG_ARENA_TEAM_ADD_MEMBER"); sLog.outDebug("CMSG_ARENA_TEAM_INVITE");
CHECK_PACKET_SIZE(recv_data, 4+1); CHECK_PACKET_SIZE(recv_data, 4+1);
@ -162,9 +162,9 @@ void WorldSession::HandleArenaTeamAddMemberOpcode(WorldPacket & recv_data)
sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_INVITE"); sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_INVITE");
} }
void WorldSession::HandleArenaTeamInviteAcceptOpcode(WorldPacket & /*recv_data*/) void WorldSession::HandleArenaTeamAcceptOpcode(WorldPacket & /*recv_data*/)
{ {
sLog.outDebug("CMSG_ARENA_TEAM_INVITE_ACCEPT"); // empty opcode sLog.outDebug("CMSG_ARENA_TEAM_ACCEPT"); // empty opcode
ArenaTeam *at = objmgr.GetArenaTeamById(_player->GetArenaTeamIdInvited()); ArenaTeam *at = objmgr.GetArenaTeamById(_player->GetArenaTeamIdInvited());
if(!at) if(!at)
@ -194,9 +194,9 @@ void WorldSession::HandleArenaTeamInviteAcceptOpcode(WorldPacket & /*recv_data*/
at->BroadcastPacket(&data); at->BroadcastPacket(&data);
} }
void WorldSession::HandleArenaTeamInviteDeclineOpcode(WorldPacket & /*recv_data*/) void WorldSession::HandleArenaTeamDeclineOpcode(WorldPacket & /*recv_data*/)
{ {
sLog.outDebug("CMSG_ARENA_TEAM_INVITE_DECLINE"); // empty opcode sLog.outDebug("CMSG_ARENA_TEAM_DECLINE"); // empty opcode
_player->SetArenaTeamIdInvited(0); // no more invited _player->SetArenaTeamIdInvited(0); // no more invited
} }
@ -261,9 +261,9 @@ void WorldSession::HandleArenaTeamDisbandOpcode(WorldPacket & recv_data)
delete at; delete at;
} }
void WorldSession::HandleArenaTeamRemoveFromTeamOpcode(WorldPacket & recv_data) void WorldSession::HandleArenaTeamRemoveOpcode(WorldPacket & recv_data)
{ {
sLog.outDebug("CMSG_ARENA_TEAM_REMOVE_FROM_TEAM"); sLog.outDebug("CMSG_ARENA_TEAM_REMOVE");
CHECK_PACKET_SIZE(recv_data, 4+1); CHECK_PACKET_SIZE(recv_data, 4+1);
@ -307,9 +307,9 @@ void WorldSession::HandleArenaTeamRemoveFromTeamOpcode(WorldPacket & recv_data)
at->BroadcastPacket(&data); at->BroadcastPacket(&data);
} }
void WorldSession::HandleArenaTeamPromoteToCaptainOpcode(WorldPacket & recv_data) void WorldSession::HandleArenaTeamLeaderOpcode(WorldPacket & recv_data)
{ {
sLog.outDebug("CMSG_ARENA_TEAM_PROMOTE_TO_CAPTAIN"); sLog.outDebug("CMSG_ARENA_TEAM_LEADER");
CHECK_PACKET_SIZE(recv_data, 4+1); CHECK_PACKET_SIZE(recv_data, 4+1);

View file

@ -32,7 +32,7 @@
#include "ArenaTeam.h" #include "ArenaTeam.h"
#include "Language.h" #include "Language.h"
void WorldSession::HandleBattleGroundHelloOpcode( WorldPacket & recv_data ) void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8); CHECK_PACKET_SIZE(recv_data, 8);
@ -69,7 +69,7 @@ void WorldSession::SendBattlegGroundList( uint64 guid, BattleGroundTypeId bgType
SendPacket( &data ); SendPacket( &data );
} }
void WorldSession::HandleBattleGroundJoinOpcode( WorldPacket & recv_data ) void WorldSession::HandleBattlemasterJoinOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8+4+4+1); CHECK_PACKET_SIZE(recv_data, 8+4+4+1);
@ -270,7 +270,7 @@ void WorldSession::HandleBattleGroundPlayerPositionsOpcode( WorldPacket & /*recv
} }
} }
void WorldSession::HandleBattleGroundPVPlogdataOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandlePVPLogDataOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug( "WORLD: Recvd MSG_PVP_LOG_DATA Message"); sLog.outDebug( "WORLD: Recvd MSG_PVP_LOG_DATA Message");
@ -285,7 +285,7 @@ void WorldSession::HandleBattleGroundPVPlogdataOpcode( WorldPacket & /*recv_data
sLog.outDebug( "WORLD: Sent MSG_PVP_LOG_DATA Message"); sLog.outDebug( "WORLD: Sent MSG_PVP_LOG_DATA Message");
} }
void WorldSession::HandleBattleGroundListOpcode( WorldPacket &recv_data ) void WorldSession::HandleBattlefieldListOpcode( WorldPacket &recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
@ -306,7 +306,7 @@ void WorldSession::HandleBattleGroundListOpcode( WorldPacket &recv_data )
SendPacket( &data ); SendPacket( &data );
} }
void WorldSession::HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data ) void WorldSession::HandleBattleFieldPortOpcode( WorldPacket &recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 1+1+4+2+1); CHECK_PACKET_SIZE(recv_data, 1+1+4+2+1);
@ -499,7 +499,7 @@ void WorldSession::HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data )
} }
} }
void WorldSession::HandleBattleGroundLeaveOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleLeaveBattlefieldOpcode( WorldPacket & /*recv_data*/ )
{ {
//CHECK_PACKET_SIZE(recv_data, 1+1+4+2); //CHECK_PACKET_SIZE(recv_data, 1+1+4+2);
@ -627,7 +627,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
bg->AddPlayerToResurrectQueue(guid, _player->GetGUID()); bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
} }
void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data ) void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8+1+1+1); CHECK_PACKET_SIZE(recv_data, 8+1+1+1);
@ -668,7 +668,7 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )
arenatype = ARENA_TYPE_5v5; arenatype = ARENA_TYPE_5v5;
break; break;
default: default:
sLog.outError("Unknown arena slot %u at HandleBattleGroundArenaJoin()", arenaslot); sLog.outError("Unknown arena slot %u at HandleBattlemasterJoinArena()", arenaslot);
return; return;
} }
@ -788,7 +788,7 @@ void WorldSession::HandleBattleGroundArenaJoin( WorldPacket & recv_data )
sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel(bgTypeId), arenatype, isRated, arenaRating); sBattleGroundMgr.m_BattleGroundQueues[bgQueueTypeId].Update(bgTypeId, _player->GetBattleGroundQueueIdFromLevel(bgTypeId), arenatype, isRated, arenaRating);
} }
void WorldSession::HandleBattleGroundReportAFK( WorldPacket & recv_data ) void WorldSession::HandleReportPvPAFK( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8); CHECK_PACKET_SIZE(recv_data, 8);
@ -798,11 +798,11 @@ void WorldSession::HandleBattleGroundReportAFK( WorldPacket & recv_data )
if (!reportedPlayer) if (!reportedPlayer)
{ {
sLog.outDebug("WorldSession::HandleBattleGroundReportAFK: player not found"); sLog.outDebug("WorldSession::HandleReportPvPAFK: player not found");
return; return;
} }
sLog.outDebug("WorldSession::HandleBattleGroundReportAFK: %s reported %s", _player->GetName(), reportedPlayer->GetName()); sLog.outDebug("WorldSession::HandleReportPvPAFK: %s reported %s", _player->GetName(), reportedPlayer->GetName());
reportedPlayer->ReportedAfkBy(_player); reportedPlayer->ReportedAfkBy(_player);
} }

View file

@ -23,7 +23,7 @@
INSTANTIATE_SINGLETON_1( AllianceChannelMgr ); INSTANTIATE_SINGLETON_1( AllianceChannelMgr );
INSTANTIATE_SINGLETON_1( HordeChannelMgr ); INSTANTIATE_SINGLETON_1( HordeChannelMgr );
void WorldSession::HandleChannelJoin(WorldPacket& recvPacket) void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();
@ -48,7 +48,7 @@ void WorldSession::HandleChannelJoin(WorldPacket& recvPacket)
chn->Join(_player->GetGUID(), pass.c_str()); chn->Join(_player->GetGUID(), pass.c_str());
} }
void WorldSession::HandleChannelLeave(WorldPacket& recvPacket) void WorldSession::HandleLeaveChannel(WorldPacket& recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();
@ -313,7 +313,7 @@ void WorldSession::HandleChannelUnban(WorldPacket& recvPacket)
chn->UnBan(_player->GetGUID(), otp.c_str()); chn->UnBan(_player->GetGUID(), otp.c_str());
} }
void WorldSession::HandleChannelAnnounce(WorldPacket& recvPacket) void WorldSession::HandleChannelAnnouncements(WorldPacket& recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();
@ -339,7 +339,7 @@ void WorldSession::HandleChannelModerate(WorldPacket& recvPacket)
chn->Moderate(_player->GetGUID()); chn->Moderate(_player->GetGUID());
} }
void WorldSession::HandleChannelRosterQuery(WorldPacket &recvPacket) void WorldSession::HandleChannelDisplayListQuery(WorldPacket &recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();
@ -352,7 +352,7 @@ void WorldSession::HandleChannelRosterQuery(WorldPacket &recvPacket)
chn->List(_player); chn->List(_player);
} }
void WorldSession::HandleChannelInfoQuery(WorldPacket &recvPacket) void WorldSession::HandleGetChannelMemberCount(WorldPacket &recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();
@ -373,7 +373,7 @@ void WorldSession::HandleChannelInfoQuery(WorldPacket &recvPacket)
} }
} }
void WorldSession::HandleChannelJoinNotify(WorldPacket &recvPacket) void WorldSession::HandleSetChannelWatch(WorldPacket &recvPacket)
{ {
sLog.outDebug("Opcode %u", recvPacket.GetOpcode()); sLog.outDebug("Opcode %u", recvPacket.GetOpcode());
//recvPacket.hexlike(); //recvPacket.hexlike();

View file

@ -925,7 +925,7 @@ void WorldSession::HandleTutorialReset( WorldPacket & /*recv_data*/ )
GetPlayer()->SetTutorialInt( i, 0x00000000 ); GetPlayer()->SetTutorialInt( i, 0x00000000 );
} }
void WorldSession::HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data) void WorldSession::HandleSetWatchedFactionOpcode(WorldPacket & recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,4); CHECK_PACKET_SIZE(recv_data,4);
@ -935,7 +935,7 @@ void WorldSession::HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data)
GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fact); GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fact);
} }
void WorldSession::HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data) void WorldSession::HandleSetFactionInactiveOpcode(WorldPacket & recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,4+1); CHECK_PACKET_SIZE(recv_data,4+1);
@ -947,19 +947,19 @@ void WorldSession::HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data
_player->GetReputationMgr().SetInactive(replistid, inactive); _player->GetReputationMgr().SetInactive(replistid, inactive);
} }
void WorldSession::HandleToggleHelmOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleShowingHelmOpcode( WorldPacket & /*recv_data*/ )
{ {
DEBUG_LOG("CMSG_TOGGLE_HELM for %s", _player->GetName()); DEBUG_LOG("CMSG_SHOWING_HELM for %s", _player->GetName());
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM); _player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM);
} }
void WorldSession::HandleToggleCloakOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleShowingCloakOpcode( WorldPacket & /*recv_data*/ )
{ {
DEBUG_LOG("CMSG_TOGGLE_CLOAK for %s", _player->GetName()); DEBUG_LOG("CMSG_SHOWING_CLOAK for %s", _player->GetName());
_player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK); _player->ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK);
} }
void WorldSession::HandleChangePlayerNameOpcode(WorldPacket& recv_data) void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data)
{ {
CHECK_PACKET_SIZE(recv_data, 8+1); CHECK_PACKET_SIZE(recv_data, 8+1);
@ -1042,7 +1042,7 @@ void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uin
session->SendPacket(&data); session->SendPacket(&data);
} }
void WorldSession::HandleDeclinedPlayerNameOpcode(WorldPacket& recv_data) void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recv_data)
{ {
uint64 guid; uint64 guid;

View file

@ -613,7 +613,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
sLog.outErrorDb( "CreatureEventAI: Event %d incremented Phase above %u. Phase mask cannot be used with phases past %u. CreatureEntry = %d", EventId, MAX_PHASE-1, MAX_PHASE-1, m_creature->GetEntry()); sLog.outErrorDb( "CreatureEventAI: Event %d incremented Phase above %u. Phase mask cannot be used with phases past %u. CreatureEntry = %d", EventId, MAX_PHASE-1, MAX_PHASE-1, m_creature->GetEntry());
Phase = MAX_PHASE-1; Phase = MAX_PHASE-1;
} }
else else
Phase = new_phase; Phase = new_phase;
break; break;

View file

@ -197,69 +197,69 @@ struct CreatureEventAI_Action
uint32 modelId; uint32 modelId;
} morph; } morph;
// ACTION_T_SOUND = 4 // ACTION_T_SOUND = 4
struct struct
{ {
uint32 soundId; uint32 soundId;
} sound; } sound;
// ACTION_T_EMOTE = 5 // ACTION_T_EMOTE = 5
struct struct
{ {
uint32 emoteId; uint32 emoteId;
} emote; } emote;
// ACTION_T_RANDOM_SOUND = 9 // ACTION_T_RANDOM_SOUND = 9
struct struct
{ {
int32 soundId1; // (-1 in any field means no output if randomed that field) int32 soundId1; // (-1 in any field means no output if randomed that field)
int32 soundId2; int32 soundId2;
int32 soundId3; int32 soundId3;
} random_sound; } random_sound;
// ACTION_T_RANDOM_EMOTE = 10 // ACTION_T_RANDOM_EMOTE = 10
struct struct
{ {
int32 emoteId1; // (-1 in any field means no output if randomed that field) int32 emoteId1; // (-1 in any field means no output if randomed that field)
int32 emoteId2; int32 emoteId2;
int32 emoteId3; int32 emoteId3;
} random_emote; } random_emote;
// ACTION_T_CAST = 11 // ACTION_T_CAST = 11
struct struct
{ {
uint32 spellId; uint32 spellId;
uint32 target; uint32 target;
uint32 castFlags; uint32 castFlags;
} cast; } cast;
// ACTION_T_SUMMON = 12 // ACTION_T_SUMMON = 12
struct struct
{ {
uint32 creatured; uint32 creatured;
uint32 target; uint32 target;
uint32 duration; uint32 duration;
} summon; } summon;
// ACTION_T_THREAT_SINGLE_PCT = 13 // ACTION_T_THREAT_SINGLE_PCT = 13
struct struct
{ {
int32 percent; int32 percent;
uint32 target; uint32 target;
} threat_single_pct; } threat_single_pct;
// ACTION_T_THREAT_ALL_PCT = 14 // ACTION_T_THREAT_ALL_PCT = 14
struct struct
{ {
int32 percent; int32 percent;
} threat_all_pct; } threat_all_pct;
// ACTION_T_QUEST_EVENT = 15 // ACTION_T_QUEST_EVENT = 15
struct struct
{ {
uint32 questId; uint32 questId;
uint32 target; uint32 target;
} quest_event; } quest_event;
// ACTION_T_CAST_EVENT = 16 // ACTION_T_CAST_EVENT = 16
struct struct
{ {
uint32 creatureId; uint32 creatureId;
uint32 spellId; uint32 spellId;
uint32 target; uint32 target;
} cast_event; } cast_event;
// ACTION_T_SET_UNIT_FIELD = 17 // ACTION_T_SET_UNIT_FIELD = 17
struct struct
{ {
uint32 field; uint32 field;
uint32 value; uint32 value;
@ -267,94 +267,94 @@ struct CreatureEventAI_Action
} set_unit_field; } set_unit_field;
// ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set // ACTION_T_SET_UNIT_FLAG = 18, // value provided mask bits that will be set
// ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear // ACTION_T_REMOVE_UNIT_FLAG = 19, // value provided mask bits that will be clear
struct struct
{ {
uint32 value; uint32 value;
uint32 target; uint32 target;
} unit_flag; } unit_flag;
// ACTION_T_AUTO_ATTACK = 20 // ACTION_T_AUTO_ATTACK = 20
struct struct
{ {
uint32 state; // 0 = stop attack, anything else means continue attacking uint32 state; // 0 = stop attack, anything else means continue attacking
} auto_attack; } auto_attack;
// ACTION_T_COMBAT_MOVEMENT = 21 // ACTION_T_COMBAT_MOVEMENT = 21
struct struct
{ {
uint32 state; // 0 = stop combat based movement, anything else continue attacking uint32 state; // 0 = stop combat based movement, anything else continue attacking
} combat_movement; } combat_movement;
// ACTION_T_SET_PHASE = 22 // ACTION_T_SET_PHASE = 22
struct struct
{ {
uint32 phase; uint32 phase;
} set_phase; } set_phase;
// ACTION_T_INC_PHASE = 23 // ACTION_T_INC_PHASE = 23
struct struct
{ {
int32 step; int32 step;
} set_inc_phase; } set_inc_phase;
// ACTION_T_QUEST_EVENT_ALL = 26 // ACTION_T_QUEST_EVENT_ALL = 26
struct struct
{ {
uint32 questId; uint32 questId;
} quest_event_all; } quest_event_all;
// ACTION_T_CAST_EVENT_ALL = 27 // ACTION_T_CAST_EVENT_ALL = 27
struct struct
{ {
uint32 creatureId; uint32 creatureId;
uint32 spellId; uint32 spellId;
} cast_event_all; } cast_event_all;
// ACTION_T_REMOVEAURASFROMSPELL = 28 // ACTION_T_REMOVEAURASFROMSPELL = 28
struct struct
{ {
uint32 target; uint32 target;
uint32 spellId; uint32 spellId;
} remove_aura; } remove_aura;
// ACTION_T_RANGED_MOVEMENT = 29 // ACTION_T_RANGED_MOVEMENT = 29
struct struct
{ {
uint32 distance; uint32 distance;
int32 angle; int32 angle;
} ranged_movement; } ranged_movement;
// ACTION_T_RANDOM_PHASE = 30 // ACTION_T_RANDOM_PHASE = 30
struct struct
{ {
uint32 phase1; uint32 phase1;
uint32 phase2; uint32 phase2;
uint32 phase3; uint32 phase3;
} random_phase; } random_phase;
// ACTION_T_RANDOM_PHASE_RANGE = 31 // ACTION_T_RANDOM_PHASE_RANGE = 31
struct struct
{ {
uint32 phaseMin; uint32 phaseMin;
uint32 phaseMax; uint32 phaseMax;
} random_phase_range; } random_phase_range;
// ACTION_T_SUMMON_ID = 32 // ACTION_T_SUMMON_ID = 32
struct struct
{ {
uint32 creatureId; uint32 creatureId;
uint32 target; uint32 target;
uint32 spawnId; uint32 spawnId;
} summon_id; } summon_id;
// ACTION_T_KILLED_MONSTER = 33 // ACTION_T_KILLED_MONSTER = 33
struct struct
{ {
uint32 creatureId; uint32 creatureId;
uint32 target; uint32 target;
} killed_monster; } killed_monster;
// ACTION_T_SET_INST_DATA = 34 // ACTION_T_SET_INST_DATA = 34
struct struct
{ {
uint32 field; uint32 field;
uint32 value; uint32 value;
} set_inst_data; } set_inst_data;
// ACTION_T_SET_INST_DATA64 = 35 // ACTION_T_SET_INST_DATA64 = 35
struct struct
{ {
uint32 field; uint32 field;
uint32 target; uint32 target;
} set_inst_data64; } set_inst_data64;
// ACTION_T_UPDATE_TEMPLATE = 36 // ACTION_T_UPDATE_TEMPLATE = 36
struct struct
{ {
uint32 creatureId; uint32 creatureId;
uint32 team; uint32 team;
@ -502,7 +502,7 @@ struct CreatureEventAI_Event
} receive_emote; } receive_emote;
// RAW // RAW
struct struct
{ {
uint32 param1; uint32 param1;
uint32 param2; uint32 param2;

View file

@ -735,7 +735,8 @@ struct CurrencyTypesEntry
{ {
//uint32 ID; // 0 not used //uint32 ID; // 0 not used
uint32 ItemId; // 1 used as real index uint32 ItemId; // 1 used as real index
uint32 BitIndex; // 2 bit index in PLAYER_FIELD_KNOWN_CURRENCIES (1 << (index-1)) //uint32 Category; // 2 may be category
uint32 BitIndex; // 3 bit index in PLAYER_FIELD_KNOWN_CURRENCIES (1 << (index-1))
}; };
struct DurabilityCostsEntry struct DurabilityCostsEntry
@ -999,8 +1000,8 @@ struct ItemLimitCategoryEntry
uint32 ID; // 0 Id uint32 ID; // 0 Id
//char* name[16] // 1-16 m_name_lang //char* name[16] // 1-16 m_name_lang
// 17 name flags // 17 name flags
uint32 maxCount; // max allowed equipped as item or in gem slot uint32 maxCount; // 18, max allowed equipped as item or in gem slot
//uint32 unk; // 1 for prismatic gems only... //uint32 unk; // 19, 1 for gems only...
}; };
struct ItemRandomPropertiesEntry struct ItemRandomPropertiesEntry
@ -1511,7 +1512,7 @@ struct SummonPropertiesEntry
{ {
uint32 Id; // 0 uint32 Id; // 0
uint32 Group; // 1, enum SummonPropGroup, 0 - can't be controlled?, 1 - something guardian?, 2 - pet?, 3 - something controllable?, 4 - taxi/mount? uint32 Group; // 1, enum SummonPropGroup, 0 - can't be controlled?, 1 - something guardian?, 2 - pet?, 3 - something controllable?, 4 - taxi/mount?
uint32 Unk2; // 2, 14 rows > 0 uint32 FactionId; // 2, 14 rows > 0
uint32 Type; // 3, enum SummonPropType uint32 Type; // 3, enum SummonPropType
uint32 Slot; // 4, 0-6 uint32 Slot; // 4, 0-6
uint32 Flags; // 5, enum SummonPropFlags uint32 Flags; // 5, enum SummonPropFlags

View file

@ -70,7 +70,7 @@ void WorldSession::HandleGMTicketUpdateTextOpcode( WorldPacket & recv_data )
sLog.outError("Ticket update: Player %s (GUID: %u) doesn't have active ticket", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow()); sLog.outError("Ticket update: Player %s (GUID: %u) doesn't have active ticket", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
} }
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleGMTicketDeleteTicketOpcode( WorldPacket & /*recv_data*/ )
{ {
ticketmgr.Delete(GetPlayer()->GetGUIDLow()); ticketmgr.Delete(GetPlayer()->GetGUIDLow());
@ -132,7 +132,7 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/ )
{ {
WorldPacket data( SMSG_GMTICKET_SYSTEMSTATUS,4 ); WorldPacket data( SMSG_GMTICKET_SYSTEMSTATUS, 4 );
data << uint32(1); // we can also disable ticket system by sending 0 value data << uint32(1); // we can also disable ticket system by sending 0 value
SendPacket( &data ); SendPacket( &data );

View file

@ -103,6 +103,7 @@ struct GameObjectInfo
uint32 openTextID; //14 can be used to replace castBarCaption? uint32 openTextID; //14 can be used to replace castBarCaption?
uint32 groupLootRules; //15 uint32 groupLootRules; //15
} chest; } chest;
//4 GAMEOBJECT_TYPE_BINDER - empty
//5 GAMEOBJECT_TYPE_GENERIC //5 GAMEOBJECT_TYPE_GENERIC
struct struct
{ {
@ -205,6 +206,7 @@ struct GameObjectInfo
uint32 eventID; //2 uint32 eventID; //2
uint32 openTextID; //3 can be used to replace castBarCaption? uint32 openTextID; //3 can be used to replace castBarCaption?
} camera; } camera;
//14 GAMEOBJECT_TYPE_MAPOBJECT - empty
//15 GAMEOBJECT_TYPE_MO_TRANSPORT //15 GAMEOBJECT_TYPE_MO_TRANSPORT
struct struct
{ {
@ -216,6 +218,7 @@ struct GameObjectInfo
uint32 transportPhysics; //5 uint32 transportPhysics; //5
uint32 mapID; //6 uint32 mapID; //6
} moTransport; } moTransport;
//16 GAMEOBJECT_TYPE_DUELFLAG - empty
//17 GAMEOBJECT_TYPE_FISHINGNODE //17 GAMEOBJECT_TYPE_FISHINGNODE
struct struct
{ {
@ -234,6 +237,7 @@ struct GameObjectInfo
uint32 castersGrouped; //6 uint32 castersGrouped; //6
uint32 ritualNoTargetCheck; //7 uint32 ritualNoTargetCheck; //7
} summoningRitual; } summoningRitual;
//19 GAMEOBJECT_TYPE_MAILBOX - empty
//20 GAMEOBJECT_TYPE_AUCTIONHOUSE //20 GAMEOBJECT_TYPE_AUCTIONHOUSE
struct struct
{ {
@ -349,7 +353,8 @@ struct GameObjectInfo
uint32 state1Name; //2 uint32 state1Name; //2
uint32 state2Name; //3 uint32 state2Name; //3
} destructibleBuilding; } destructibleBuilding;
//34 GAMEOBJECT_TYPE_TRAPDOOR //34 GAMEOBJECT_TYPE_GUILDBANK - empty
//35 GAMEOBJECT_TYPE_TRAPDOOR
struct struct
{ {
uint32 whenToPause; // 0 uint32 whenToPause; // 0
@ -358,7 +363,7 @@ struct GameObjectInfo
} trapDoor; } trapDoor;
// not use for specific field access (only for output with loop by all filed), also this determinate max union size // not use for specific field access (only for output with loop by all filed), also this determinate max union size
struct // GAMEOBJECT_TYPE_SPELLCASTER struct
{ {
uint32 data[24]; uint32 data[24];
} raw; } raw;

View file

@ -150,7 +150,7 @@ void PlayerMenu::SendGossipMenu( uint32 TitleTextId, uint64 npcGUID )
Quest const* pQuest = objmgr.GetQuestTemplate(questID); Quest const* pQuest = objmgr.GetQuestTemplate(questID);
data << uint32(questID); data << uint32(questID);
data << uint32( qItem.m_qIcon ); data << uint32(qItem.m_qIcon);
data << uint32(pSession->GetPlayer()->GetQuestLevel(pQuest)); data << uint32(pSession->GetPlayer()->GetQuestLevel(pQuest));
std::string Title = pQuest->GetTitle(); std::string Title = pQuest->GetTitle();

View file

@ -926,10 +926,10 @@ namespace MaNGOS
return false; return false;
if(!u->CanAssistTo(i_obj,i_enemy)) if(!u->CanAssistTo(i_obj,i_enemy))
return false; return false;
if(!i_obj->IsWithinDistInMap(u, i_range)) if(!i_obj->IsWithinDistInMap(u, i_range))
return false; return false;
if(!i_obj->IsWithinLOSInMap(u)) if(!i_obj->IsWithinLOSInMap(u))
return false; return false;

View file

@ -258,7 +258,7 @@ void WorldSession::HandleGroupUninviteGuidOpcode(WorldPacket & recv_data)
SendPartyResult(PARTY_OP_LEAVE, "", PARTY_RESULT_NOT_IN_YOUR_PARTY); SendPartyResult(PARTY_OP_LEAVE, "", PARTY_RESULT_NOT_IN_YOUR_PARTY);
} }
void WorldSession::HandleGroupUninviteNameOpcode(WorldPacket & recv_data) void WorldSession::HandleGroupUninviteOpcode(WorldPacket & recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,1); CHECK_PACKET_SIZE(recv_data,1);
@ -272,7 +272,7 @@ void WorldSession::HandleGroupUninviteNameOpcode(WorldPacket & recv_data)
// can't uninvite yourself // can't uninvite yourself
if(GetPlayer()->GetName() == membername) if(GetPlayer()->GetName() == membername)
{ {
sLog.outError("WorldSession::HandleGroupUninviteNameOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow()); sLog.outError("WorldSession::HandleGroupUninviteOpcode: leader %s(%d) tried to uninvite himself from the group.", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow());
return; return;
} }
@ -324,7 +324,7 @@ void WorldSession::HandleGroupSetLeaderOpcode( WorldPacket & recv_data )
group->ChangeLeader(guid); group->ChangeLeader(guid);
} }
void WorldSession::HandleGroupLeaveOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleGroupDisbandOpcode( WorldPacket & /*recv_data*/ )
{ {
if(!GetPlayer()->GetGroup()) if(!GetPlayer()->GetGroup())
return; return;
@ -446,7 +446,7 @@ void WorldSession::HandleRandomRollOpcode(WorldPacket& recv_data)
SendPacket(&data); SendPacket(&data);
} }
void WorldSession::HandleRaidIconTargetOpcode( WorldPacket & recv_data ) void WorldSession::HandleRaidTargetUpdateOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,1); CHECK_PACKET_SIZE(recv_data,1);
@ -479,7 +479,7 @@ void WorldSession::HandleRaidIconTargetOpcode( WorldPacket & recv_data )
} }
} }
void WorldSession::HandleRaidConvertOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleGroupRaidConvertOpcode( WorldPacket & /*recv_data*/ )
{ {
Group *group = GetPlayer()->GetGroup(); Group *group = GetPlayer()->GetGroup();
if(!group) if(!group)
@ -528,7 +528,7 @@ void WorldSession::HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data )
group->ChangeMembersGroup(objmgr.GetPlayer(name.c_str()), groupNr); group->ChangeMembersGroup(objmgr.GetPlayer(name.c_str()), groupNr);
} }
void WorldSession::HandleGroupAssistantOpcode( WorldPacket & recv_data ) void WorldSession::HandleGroupAssistantLeaderOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+1); CHECK_PACKET_SIZE(recv_data,8+1);
@ -550,9 +550,10 @@ void WorldSession::HandleGroupAssistantOpcode( WorldPacket & recv_data )
group->SetAssistant(guid, (flag==0?false:true)); group->SetAssistant(guid, (flag==0?false:true));
} }
void WorldSession::HandleGroupPromoteOpcode( WorldPacket & recv_data ) void WorldSession::HandlePartyAssignmentOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 1+1+8); CHECK_PACKET_SIZE(recv_data, 1+1+8);
sLog.outDebug("MSG_PARTY_ASSIGNMENT");
Group *group = GetPlayer()->GetGroup(); Group *group = GetPlayer()->GetGroup();
if(!group) if(!group)
@ -612,7 +613,7 @@ void WorldSession::HandleRaidReadyCheckOpcode( WorldPacket & recv_data )
} }
} }
void WorldSession::HandleRaidReadyCheckFinishOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleRaidReadyCheckFinishedOpcode( WorldPacket & /*recv_data*/ )
{ {
//Group* group = GetPlayer()->GetGroup(); //Group* group = GetPlayer()->GetGroup();
//if(!group) //if(!group)
@ -887,11 +888,11 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data )
sLog.outDebug( "WORLD: got CMSG_GROUP_CANCEL." ); sLog.outDebug( "WORLD: got CMSG_GROUP_CANCEL." );
}*/ }*/
void WorldSession::HandleGroupPassOnLootOpcode( WorldPacket & recv_data ) void WorldSession::HandleOptOutOfLootOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
sLog.outDebug("WORLD: Received CMSG_GROUP_PASS_ON_LOOT"); sLog.outDebug("WORLD: Received CMSG_OPT_OUT_OF_LOOT");
uint32 unkn; uint32 unkn;
recv_data >> unkn; recv_data >> unkn;

View file

@ -740,7 +740,7 @@ void WorldSession::SendGuildCommandResult(uint32 typecmd, const std::string& str
//sLog.outDebug("WORLD: Sent (SMSG_GUILD_COMMAND_RESULT)"); //sLog.outDebug("WORLD: Sent (SMSG_GUILD_COMMAND_RESULT)");
} }
void WorldSession::HandleGuildChangeInfoOpcode(WorldPacket& recvPacket) void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
{ {
CHECK_PACKET_SIZE(recvPacket, 1); CHECK_PACKET_SIZE(recvPacket, 1);
@ -766,7 +766,7 @@ void WorldSession::HandleGuildChangeInfoOpcode(WorldPacket& recvPacket)
guild->SetGINFO(GINFO); guild->SetGINFO(GINFO);
} }
void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket) void WorldSession::HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket)
{ {
CHECK_PACKET_SIZE(recvPacket, 8+4+4+4+4+4); CHECK_PACKET_SIZE(recvPacket, 8+4+4+4+4+4);
@ -787,7 +787,7 @@ void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)
{ {
//"That's not an emblem vendor!" //"That's not an emblem vendor!"
SendSaveGuildEmblem(ERR_GUILDEMBLEM_INVALIDVENDOR); SendSaveGuildEmblem(ERR_GUILDEMBLEM_INVALIDVENDOR);
sLog.outDebug("WORLD: HandleGuildSaveEmblemOpcode - Unit (GUID: %u) not found or you can't interact with him.", GUID_LOPART(vendorGuid)); sLog.outDebug("WORLD: HandleSaveGuildEmblemOpcode - Unit (GUID: %u) not found or you can't interact with him.", GUID_LOPART(vendorGuid));
return; return;
} }
@ -832,7 +832,7 @@ void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)
guild->Query(this); guild->Query(this);
} }
void WorldSession::HandleGuildEventLogOpcode(WorldPacket& /* recvPacket */) void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
{ {
// empty // empty
sLog.outDebug("WORLD: Received (MSG_GUILD_EVENT_LOG_QUERY)"); sLog.outDebug("WORLD: Received (MSG_GUILD_EVENT_LOG_QUERY)");
@ -851,7 +851,7 @@ void WorldSession::HandleGuildEventLogOpcode(WorldPacket& /* recvPacket */)
/****** GUILD BANK *******/ /****** GUILD BANK *******/
void WorldSession::HandleGuildBankGetMoneyAmount( WorldPacket & /* recv_data */ ) void WorldSession::HandleGuildBankMoneyWithdrawn( WorldPacket & /* recv_data */ )
{ {
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_MONEY_WITHDRAWN)"); sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_MONEY_WITHDRAWN)");
//recv_data.hexlike(); //recv_data.hexlike();
@ -867,7 +867,7 @@ void WorldSession::HandleGuildBankGetMoneyAmount( WorldPacket & /* recv_data */
pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow()); pGuild->SendMoneyInfo(this, GetPlayer()->GetGUIDLow());
} }
void WorldSession::HandleGuildBankGetRights( WorldPacket& /* recv_data */ ) void WorldSession::HandleGuildPermissions( WorldPacket& /* recv_data */ )
{ {
sLog.outDebug("WORLD: Received (MSG_GUILD_PERMISSIONS)"); sLog.outDebug("WORLD: Received (MSG_GUILD_PERMISSIONS)");
@ -897,7 +897,7 @@ void WorldSession::HandleGuildBankGetRights( WorldPacket& /* recv_data */ )
} }
/* Called when clicking on Guild bank gameobject */ /* Called when clicking on Guild bank gameobject */
void WorldSession::HandleGuildBankQuery( WorldPacket & recv_data ) void WorldSession::HandleGuildBankerActivate( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANKER_ACTIVATE)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANKER_ACTIVATE)");
CHECK_PACKET_SIZE(recv_data,8+1); CHECK_PACKET_SIZE(recv_data,8+1);
@ -921,7 +921,7 @@ void WorldSession::HandleGuildBankQuery( WorldPacket & recv_data )
} }
/* Called when opening guild bank tab only (first one) */ /* Called when opening guild bank tab only (first one) */
void WorldSession::HandleGuildBankTabColon( WorldPacket & recv_data ) void WorldSession::HandleGuildBankQueryTab( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_QUERY_TAB)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_QUERY_TAB)");
CHECK_PACKET_SIZE(recv_data,8+1+1); CHECK_PACKET_SIZE(recv_data,8+1+1);
@ -947,7 +947,7 @@ void WorldSession::HandleGuildBankTabColon( WorldPacket & recv_data )
pGuild->DisplayGuildBankContent(this, TabId); pGuild->DisplayGuildBankContent(this, TabId);
} }
void WorldSession::HandleGuildBankDeposit( WorldPacket & recv_data ) void WorldSession::HandleGuildBankDepositMoney( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_DEPOSIT_MONEY)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_DEPOSIT_MONEY)");
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -995,7 +995,7 @@ void WorldSession::HandleGuildBankDeposit( WorldPacket & recv_data )
pGuild->DisplayGuildBankMoneyUpdate(); pGuild->DisplayGuildBankMoneyUpdate();
} }
void WorldSession::HandleGuildBankWithdraw( WorldPacket & recv_data ) void WorldSession::HandleGuildBankWithdrawMoney( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_WITHDRAW_MONEY)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_WITHDRAW_MONEY)");
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -1045,7 +1045,7 @@ void WorldSession::HandleGuildBankWithdraw( WorldPacket & recv_data )
pGuild->DisplayGuildBankMoneyUpdate(); pGuild->DisplayGuildBankMoneyUpdate();
} }
void WorldSession::HandleGuildBankDepositItem( WorldPacket & recv_data ) void WorldSession::HandleGuildBankSwapItems( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_SWAP_ITEMS)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_SWAP_ITEMS)");
//recv_data.hexlike(); //recv_data.hexlike();
@ -1598,7 +1598,7 @@ void WorldSession::HandleGuildBankBuyTab( WorldPacket & recv_data )
pGuild->DisplayGuildBankTabsInfo(this); pGuild->DisplayGuildBankTabsInfo(this);
} }
void WorldSession::HandleGuildBankModifyTab( WorldPacket & recv_data ) void WorldSession::HandleGuildBankUpdateTab( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_UPDATE_TAB)"); sLog.outDebug("WORLD: Received (CMSG_GUILD_BANK_UPDATE_TAB)");
//recv_data.hexlike(); //recv_data.hexlike();
@ -1635,7 +1635,7 @@ void WorldSession::HandleGuildBankModifyTab( WorldPacket & recv_data )
pGuild->DisplayGuildBankContent(this, TabId); pGuild->DisplayGuildBankContent(this, TabId);
} }
void WorldSession::HandleGuildBankLog( WorldPacket & recv_data ) void WorldSession::HandleGuildBankLogQuery( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_LOG_QUERY)"); sLog.outDebug("WORLD: Received (MSG_GUILD_BANK_LOG_QUERY)");
CHECK_PACKET_SIZE(recv_data, 1); CHECK_PACKET_SIZE(recv_data, 1);
@ -1654,7 +1654,7 @@ void WorldSession::HandleGuildBankLog( WorldPacket & recv_data )
pGuild->DisplayGuildBankLogs(this, TabId); pGuild->DisplayGuildBankLogs(this, TabId);
} }
void WorldSession::HandleGuildBankTabText(WorldPacket &recv_data) void WorldSession::HandleQueryGuildBankTabText(WorldPacket &recv_data)
{ {
sLog.outDebug("WORLD: Received MSG_QUERY_GUILD_BANK_TEXT"); sLog.outDebug("WORLD: Received MSG_QUERY_GUILD_BANK_TEXT");
CHECK_PACKET_SIZE(recv_data, 1); CHECK_PACKET_SIZE(recv_data, 1);
@ -1673,7 +1673,7 @@ void WorldSession::HandleGuildBankTabText(WorldPacket &recv_data)
pGuild->SendGuildBankTabText(this, TabId); pGuild->SendGuildBankTabText(this, TabId);
} }
void WorldSession::HandleGuildBankSetTabText(WorldPacket &recv_data) void WorldSession::HandleSetGuildBankTabText(WorldPacket &recv_data)
{ {
sLog.outDebug("WORLD: Received CMSG_SET_GUILD_BANK_TEXT"); sLog.outDebug("WORLD: Received CMSG_SET_GUILD_BANK_TEXT");
CHECK_PACKET_SIZE(recv_data, 1+1); CHECK_PACKET_SIZE(recv_data, 1+1);

View file

@ -1007,7 +1007,7 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data)
return; return;
} }
else else
sLog.outDebug("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid); sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid);
} }
void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data) void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
@ -1319,7 +1319,7 @@ void WorldSession::HandleSocketOpcode(WorldPacket& recv_data)
_player->ToggleMetaGemsActive(slot, true); //turn on all metagems (except for target item) _player->ToggleMetaGemsActive(slot, true); //turn on all metagems (except for target item)
} }
void WorldSession::HandleCancelTempItemEnchantmentOpcode(WorldPacket& recv_data) void WorldSession::HandleCancelTempEnchantmentOpcode(WorldPacket& recv_data)
{ {
sLog.outDebug("WORLD: CMSG_CANCEL_TEMP_ENCHANTMENT"); sLog.outDebug("WORLD: CMSG_CANCEL_TEMP_ENCHANTMENT");

View file

@ -120,6 +120,7 @@ enum ITEM_FLAGS
enum BAG_FAMILY_MASK enum BAG_FAMILY_MASK
{ {
BAG_FAMILY_MASK_NONE = 0x00000000,
BAG_FAMILY_MASK_ARROWS = 0x00000001, BAG_FAMILY_MASK_ARROWS = 0x00000001,
BAG_FAMILY_MASK_BULLETS = 0x00000002, BAG_FAMILY_MASK_BULLETS = 0x00000002,
BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004, BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004,
@ -557,7 +558,7 @@ struct ItemPrototype
uint32 MaxDurability; uint32 MaxDurability;
uint32 Area; // id from AreaTable.dbc uint32 Area; // id from AreaTable.dbc
uint32 Map; // id from Map.dbc uint32 Map; // id from Map.dbc
uint32 BagFamily; // bit string (1 << id from ItemBagFamily.dbc) uint32 BagFamily; // bit mask (1 << id from ItemBagFamily.dbc)
uint32 TotemCategory; // id from TotemCategory.dbc uint32 TotemCategory; // id from TotemCategory.dbc
_Socket Socket[MAX_ITEM_PROTO_SOCKETS]; _Socket Socket[MAX_ITEM_PROTO_SOCKETS];
uint32 socketBonus; // id from SpellItemEnchantment.dbc uint32 socketBonus; // id from SpellItemEnchantment.dbc

View file

@ -140,9 +140,9 @@ static void AttemptAddMore(Player* _player)
} }
} }
void WorldSession::HandleLfgAutoJoinOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleLfgSetAutoJoinOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug("CMSG_SET_LFG_AUTO_JOIN"); sLog.outDebug("CMSG_LFG_SET_AUTOJOIN");
LookingForGroup_auto_join = true; LookingForGroup_auto_join = true;
if(!_player) // needed because STATUS_AUTHED if(!_player) // needed because STATUS_AUTHED
@ -151,15 +151,15 @@ void WorldSession::HandleLfgAutoJoinOpcode( WorldPacket & /*recv_data*/ )
AttemptJoin(_player); AttemptJoin(_player);
} }
void WorldSession::HandleLfgCancelAutoJoinOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleLfgClearAutoJoinOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug("CMSG_UNSET_LFG_AUTO_JOIN"); sLog.outDebug("CMSG_LFG_CLEAR_AUTOJOIN");
LookingForGroup_auto_join = false; LookingForGroup_auto_join = false;
} }
void WorldSession::HandleLfmAutoAddMembersOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleLfmSetAutoFillOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug("CMSG_SET_LFM_AUTOADD"); sLog.outDebug("CMSG_LFM_SET_AUTOFILL");
LookingForGroup_auto_add = true; LookingForGroup_auto_add = true;
if(!_player) // needed because STATUS_AUTHED if(!_player) // needed because STATUS_AUTHED
@ -168,15 +168,16 @@ void WorldSession::HandleLfmAutoAddMembersOpcode( WorldPacket & /*recv_data*/ )
AttemptAddMore(_player); AttemptAddMore(_player);
} }
void WorldSession::HandleLfmCancelAutoAddmembersOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleLfmClearAutoFillOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug("CMSG_UNSET_LFM_AUTOADD"); sLog.outDebug("CMSG_LFM_CLEAR_AUTOFILL");
LookingForGroup_auto_add = false; LookingForGroup_auto_add = false;
} }
void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ ) void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
{ {
sLog.outDebug("CMSG_LOOKING_FOR_GROUP_CLEAR"); // empty packet
sLog.outDebug("CMSG_CLEAR_LOOKING_FOR_GROUP");
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i) for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
_player->m_lookingForGroup.slots[i].Clear(); _player->m_lookingForGroup.slots[i].Clear();
@ -185,14 +186,15 @@ void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
_player->LeaveLFGChannel(); _player->LeaveLFGChannel();
} }
void WorldSession::HandleLfmSetNoneOpcode( WorldPacket & /*recv_data */) void WorldSession::HandleLfmClearOpcode( WorldPacket & /*recv_data */)
{ {
sLog.outDebug("CMSG_SET_LOOKING_FOR_NONE"); // empty packet
sLog.outDebug("CMSG_CLEAR_LOOKING_FOR_MORE");
_player->m_lookingForGroup.more.Clear(); _player->m_lookingForGroup.more.Clear();
} }
void WorldSession::HandleLfmSetOpcode( WorldPacket & recv_data ) void WorldSession::HandleSetLfmOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,4); CHECK_PACKET_SIZE(recv_data,4);
@ -214,11 +216,11 @@ void WorldSession::HandleLfmSetOpcode( WorldPacket & recv_data )
SendLfgResult(type, entry, 1); SendLfgResult(type, entry, 1);
} }
void WorldSession::HandleLfgSetCommentOpcode( WorldPacket & recv_data ) void WorldSession::HandleSetLfgCommentOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,1); CHECK_PACKET_SIZE(recv_data, 1);
sLog.outDebug("CMSG_SET_COMMENTARY"); sLog.outDebug("CMSG_SET_LFG_COMMENT");
//recv_data.hexlike(); //recv_data.hexlike();
std::string comment; std::string comment;
@ -230,7 +232,7 @@ void WorldSession::HandleLfgSetCommentOpcode( WorldPacket & recv_data )
void WorldSession::HandleLookingForGroup(WorldPacket& recv_data) void WorldSession::HandleLookingForGroup(WorldPacket& recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,4+4+4); CHECK_PACKET_SIZE(recv_data, 4+4+4);
sLog.outDebug("MSG_LOOKING_FOR_GROUP"); sLog.outDebug("MSG_LOOKING_FOR_GROUP");
//recv_data.hexlike(); //recv_data.hexlike();

View file

@ -658,7 +658,7 @@ bool ChatHandler::HandleModifyKnownTitlesCommand(const char* args)
uint64 titles2 = titles; uint64 titles2 = titles;
for(int i=1; i < sCharTitlesStore.GetNumRows(); ++i) for(int i = 1; i < sCharTitlesStore.GetNumRows(); ++i)
if(CharTitlesEntry const* tEntry = sCharTitlesStore.LookupEntry(i)) if(CharTitlesEntry const* tEntry = sCharTitlesStore.LookupEntry(i))
titles2 &= ~(uint64(1) << tEntry->bit_index); titles2 &= ~(uint64(1) << tEntry->bit_index);
@ -2000,7 +2000,7 @@ bool ChatHandler::HandleTeleNameCommand(const char * args)
extractOptFirstArg((char*)args,&nameStr,&teleStr); extractOptFirstArg((char*)args,&nameStr,&teleStr);
if(!teleStr) if(!teleStr)
return false; return false;
Player* target; Player* target;
uint64 target_guid; uint64 target_guid;
std::string target_name; std::string target_name;

View file

@ -3170,7 +3170,7 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
bool ChatHandler::HandleGuildCreateCommand(const char* args) bool ChatHandler::HandleGuildCreateCommand(const char* args)
{ {
if(!*args) if(!*args)
return false; return false;
// if not guild name only (in "") then player name // if not guild name only (in "") then player name
Player* target; Player* target;
@ -3209,7 +3209,7 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
bool ChatHandler::HandleGuildInviteCommand(const char *args) bool ChatHandler::HandleGuildInviteCommand(const char *args)
{ {
if(!*args) if(!*args)
return false; return false;
// if not guild name only (in "") then player name // if not guild name only (in "") then player name
uint64 target_guid; uint64 target_guid;

View file

@ -286,7 +286,7 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data )
} }
//called when mail is read //called when mail is read
void WorldSession::HandleMarkAsRead(WorldPacket & recv_data ) void WorldSession::HandleMailMarkAsRead(WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -332,7 +332,7 @@ void WorldSession::HandleMailDelete(WorldPacket & recv_data )
pl->SendMailResult(mailId, MAIL_DELETED, MAIL_OK); pl->SendMailResult(mailId, MAIL_DELETED, MAIL_OK);
} }
void WorldSession::HandleReturnToSender(WorldPacket & recv_data ) void WorldSession::HandleMailReturnToSender(WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -432,7 +432,7 @@ void WorldSession::SendReturnToSender(uint8 messageType, uint32 sender_acc, uint
} }
//called when player takes item attached in mail //called when player takes item attached in mail
void WorldSession::HandleTakeItem(WorldPacket & recv_data ) void WorldSession::HandleMailTakeItem(WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4+4); CHECK_PACKET_SIZE(recv_data,8+4+4);
@ -527,7 +527,7 @@ void WorldSession::HandleTakeItem(WorldPacket & recv_data )
pl->SendMailResult(mailId, MAIL_ITEM_TAKEN, MAIL_ERR_EQUIP_ERROR, msg); pl->SendMailResult(mailId, MAIL_ITEM_TAKEN, MAIL_ERR_EQUIP_ERROR, msg);
} }
void WorldSession::HandleTakeMoney(WorldPacket & recv_data ) void WorldSession::HandleMailTakeMoney(WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -563,7 +563,7 @@ void WorldSession::HandleTakeMoney(WorldPacket & recv_data )
} }
//called when player lists his received mails //called when player lists his received mails
void WorldSession::HandleGetMail(WorldPacket & recv_data ) void WorldSession::HandleGetMailList(WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8); CHECK_PACKET_SIZE(recv_data,8);
@ -751,7 +751,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket & recv_data )
} }
//TODO Fix me! ... this void has probably bad condition, but good data are sent //TODO Fix me! ... this void has probably bad condition, but good data are sent
void WorldSession::HandleMsgQueryNextMailtime(WorldPacket & /*recv_data*/ ) void WorldSession::HandleQueryNextMailTime(WorldPacket & /*recv_data*/ )
{ {
WorldPacket data(MSG_QUERY_NEXT_MAIL_TIME, 8); WorldPacket data(MSG_QUERY_NEXT_MAIL_TIME, 8);

View file

@ -1944,12 +1944,9 @@ void Map::SendInitSelf( Player * player )
UpdateData data; UpdateData data;
bool hasTransport = false;
// attach to player data current transport data // attach to player data current transport data
if(Transport* transport = player->GetTransport()) if(Transport* transport = player->GetTransport())
{ {
hasTransport = true;
transport->BuildCreateUpdateBlockForPlayer(&data, player); transport->BuildCreateUpdateBlockForPlayer(&data, player);
} }
@ -1963,14 +1960,13 @@ void Map::SendInitSelf( Player * player )
{ {
if(player!=(*itr) && player->HaveAtClient(*itr)) if(player!=(*itr) && player->HaveAtClient(*itr))
{ {
hasTransport = true;
(*itr)->BuildCreateUpdateBlockForPlayer(&data, player); (*itr)->BuildCreateUpdateBlockForPlayer(&data, player);
} }
} }
} }
WorldPacket packet; WorldPacket packet;
data.BuildPacket(&packet, hasTransport); data.BuildPacket(&packet);
player->GetSession()->SendPacket(&packet); player->GetSession()->SendPacket(&packet);
} }
@ -1987,20 +1983,17 @@ void Map::SendInitTransports( Player * player )
MapManager::TransportSet& tset = tmap[player->GetMapId()]; MapManager::TransportSet& tset = tmap[player->GetMapId()];
bool hasTransport = false;
for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i) for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i)
{ {
// send data for current transport in other place // send data for current transport in other place
if((*i) != player->GetTransport() && (*i)->GetMapId()==i_id) if((*i) != player->GetTransport() && (*i)->GetMapId()==i_id)
{ {
hasTransport = true;
(*i)->BuildCreateUpdateBlockForPlayer(&transData, player); (*i)->BuildCreateUpdateBlockForPlayer(&transData, player);
} }
} }
WorldPacket packet; WorldPacket packet;
transData.BuildPacket(&packet, hasTransport); transData.BuildPacket(&packet);
player->GetSession()->SendPacket(&packet); player->GetSession()->SendPacket(&packet);
} }

View file

@ -438,7 +438,7 @@ void WorldSession::HandleStandStateChangeOpcode( WorldPacket & recv_data )
_player->SetStandState(animstate); _player->SetStandState(animstate);
} }
void WorldSession::HandleFriendListOpcode( WorldPacket & recv_data ) void WorldSession::HandleContactListOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
sLog.outDebug( "WORLD: Received CMSG_CONTACT_LIST" ); sLog.outDebug( "WORLD: Received CMSG_CONTACT_LIST" );
@ -611,9 +611,10 @@ void WorldSession::HandleDelIgnoreOpcode( WorldPacket & recv_data )
sLog.outDebug( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" ); sLog.outDebug( "WORLD: Sent motd (SMSG_FRIEND_STATUS)" );
} }
void WorldSession::HandleSetFriendNoteOpcode( WorldPacket & recv_data ) void WorldSession::HandleSetContactNotesOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8+1); CHECK_PACKET_SIZE(recv_data, 8+1);
sLog.outDebug("CMSG_SET_CONTACT_NOTES");
uint64 guid; uint64 guid;
std::string note; std::string note;
recv_data >> guid >> note; recv_data >> guid >> note;
@ -649,7 +650,7 @@ void WorldSession::HandleBugOpcode( WorldPacket & recv_data )
CharacterDatabase.PExecute ("INSERT INTO bugreport (type,content) VALUES('%s', '%s')", type.c_str( ), content.c_str( )); CharacterDatabase.PExecute ("INSERT INTO bugreport (type,content) VALUES('%s', '%s')", type.c_str( ), content.c_str( ));
} }
void WorldSession::HandleCorpseReclaimOpcode(WorldPacket &recv_data) void WorldSession::HandleReclaimCorpseOpcode(WorldPacket &recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,8); CHECK_PACKET_SIZE(recv_data,8);
@ -1015,7 +1016,7 @@ void WorldSession::HandleSetActionButtonOpcode(WorldPacket& recv_data)
} }
} }
void WorldSession::HandleCompleteCinema( WorldPacket & /*recv_data*/ ) void WorldSession::HandleCompleteCinematic( WorldPacket & /*recv_data*/ )
{ {
DEBUG_LOG( "WORLD: Player is watching cinema" ); DEBUG_LOG( "WORLD: Player is watching cinema" );
} }
@ -1119,7 +1120,7 @@ void WorldSession::HandleMoveRootAck(WorldPacket&/* recv_data*/)
*/ */
} }
void WorldSession::HandleSetActionBar(WorldPacket& recv_data) void WorldSession::HandleSetActionBarToggles(WorldPacket& recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,1); CHECK_PACKET_SIZE(recv_data,1);
@ -1130,7 +1131,7 @@ void WorldSession::HandleSetActionBar(WorldPacket& recv_data)
if(!GetPlayer()) // ignore until not logged (check needed because STATUS_AUTHED) if(!GetPlayer()) // ignore until not logged (check needed because STATUS_AUTHED)
{ {
if(ActionBar!=0) if(ActionBar!=0)
sLog.outError("WorldSession::HandleSetActionBar in not logged state with value: %u, ignored",uint32(ActionBar)); sLog.outError("WorldSession::HandleSetActionBarToggles in not logged state with value: %u, ignored",uint32(ActionBar));
return; return;
} }
@ -1370,10 +1371,10 @@ void WorldSession::HandleWhoisOpcode(WorldPacket& recv_data)
sLog.outDebug("Received whois command from player %s for character %s", GetPlayer()->GetName(), charname.c_str()); sLog.outDebug("Received whois command from player %s for character %s", GetPlayer()->GetName(), charname.c_str());
} }
void WorldSession::HandleReportSpamOpcode( WorldPacket & recv_data ) void WorldSession::HandleComplainOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 1+8); CHECK_PACKET_SIZE(recv_data, 1+8);
sLog.outDebug("WORLD: CMSG_REPORT_SPAM"); sLog.outDebug("WORLD: CMSG_COMPLAIN");
recv_data.hexlike(); recv_data.hexlike();
uint8 spam_type; // 0 - mail, 1 - chat uint8 spam_type; // 0 - mail, 1 - chat
@ -1414,7 +1415,7 @@ void WorldSession::HandleReportSpamOpcode( WorldPacket & recv_data )
sLog.outDebug("REPORT SPAM: type %u, guid %u, unk1 %u, unk2 %u, unk3 %u, unk4 %u, message %s", spam_type, GUID_LOPART(spammer_guid), unk1, unk2, unk3, unk4, description.c_str()); sLog.outDebug("REPORT SPAM: type %u, guid %u, unk1 %u, unk2 %u, unk3 %u, unk4 %u, message %s", spam_type, GUID_LOPART(spammer_guid), unk1, unk2, unk3, unk4, description.c_str());
} }
void WorldSession::HandleRealmStateRequestOpcode( WorldPacket & recv_data ) void WorldSession::HandleRealmSplitOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
@ -1460,7 +1461,7 @@ void WorldSession::HandleFarSightOpcode( WorldPacket & recv_data )
} }
} }
void WorldSession::HandleChooseTitleOpcode( WorldPacket & recv_data ) void WorldSession::HandleSetTitleOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
@ -1509,7 +1510,7 @@ void WorldSession::HandleResetInstancesOpcode( WorldPacket & /*recv_data*/ )
_player->ResetInstances(INSTANCE_RESET_ALL); _player->ResetInstances(INSTANCE_RESET_ALL);
} }
void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data ) void WorldSession::HandleSetDungeonDifficultyOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 4); CHECK_PACKET_SIZE(recv_data, 4);
@ -1523,7 +1524,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
if(mode > DIFFICULTY_HEROIC) if(mode > DIFFICULTY_HEROIC)
{ {
sLog.outError("WorldSession::HandleDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode); sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d sent an invalid instance mode %d!", _player->GetGUIDLow(), mode);
return; return;
} }
@ -1531,7 +1532,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
Map *map = _player->GetMap(); Map *map = _player->GetMap();
if(map && map->IsDungeon()) if(map && map->IsDungeon())
{ {
sLog.outError("WorldSession::HandleDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow()); sLog.outError("WorldSession::HandleSetDungeonDifficultyOpcode: player %d tried to reset the instance while inside!", _player->GetGUIDLow());
return; return;
} }
@ -1555,7 +1556,7 @@ void WorldSession::HandleDungeonDifficultyOpcode( WorldPacket & recv_data )
} }
} }
void WorldSession::HandleDismountOpcode( WorldPacket & /*recv_data*/ ) void WorldSession::HandleCancelMountAuraOpcode( WorldPacket & /*recv_data*/ )
{ {
sLog.outDebug("WORLD: CMSG_CANCEL_MOUNT_AURA"); sLog.outDebug("WORLD: CMSG_CANCEL_MOUNT_AURA");
//recv_data.hexlike(); //recv_data.hexlike();
@ -1577,7 +1578,7 @@ void WorldSession::HandleDismountOpcode( WorldPacket & /*recv_data*/ )
_player->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED); _player->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED);
} }
void WorldSession::HandleMoveFlyModeChangeAckOpcode( WorldPacket & recv_data ) void WorldSession::HandleMoveSetCanFlyAckOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 8+4+4); CHECK_PACKET_SIZE(recv_data, 8+4+4);
@ -1592,16 +1593,6 @@ void WorldSession::HandleMoveFlyModeChangeAckOpcode( WorldPacket & recv_data )
recv_data >> guid >> unk >> flags; recv_data >> guid >> unk >> flags;
_player->SetUnitMovementFlags(flags); _player->SetUnitMovementFlags(flags);
/*
on:
25 00 00 00 00 00 00 00 | 00 00 00 00 00 00 80 00
85 4E A9 01 19 BA 7A C3 | 42 0D 70 44 44 B0 A8 42
78 15 94 40 39 03 00 00 | 00 00 80 3F
off:
25 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00
10 FD A9 01 19 BA 7A C3 | 42 0D 70 44 44 B0 A8 42
78 15 94 40 39 03 00 00 | 00 00 00 00
*/
} }
void WorldSession::HandleRequestPetInfoOpcode( WorldPacket & /*recv_data */) void WorldSession::HandleRequestPetInfoOpcode( WorldPacket & /*recv_data */)
@ -1622,7 +1613,7 @@ void WorldSession::HandleSetTaxiBenchmarkOpcode( WorldPacket & recv_data )
sLog.outDebug("Client used \"/timetest %d\" command", mode); sLog.outDebug("Client used \"/timetest %d\" command", mode);
} }
void WorldSession::HandleInspectAchievements( WorldPacket & recv_data ) void WorldSession::HandleQueryInspectAchievements( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data, 1); CHECK_PACKET_SIZE(recv_data, 1);
uint64 guid; uint64 guid;

View file

@ -60,7 +60,7 @@ uint32 GuidHigh2TypeId(uint32 guid_hi)
case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT; case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT;
case HIGHGUID_VEHICLE: return TYPEID_UNIT; case HIGHGUID_VEHICLE: return TYPEID_UNIT;
} }
return MAX_TYPEID; // unknown return NUM_CLIENT_OBJECT_TYPES; // unknown
} }
Object::Object( ) Object::Object( )
@ -115,7 +115,7 @@ void Object::_Create( uint32 guidlow, uint32 entry, HighGuid guidhigh )
{ {
if(!m_uint32Values) _InitValues(); if(!m_uint32Values) _InitValues();
uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh); // required more changes to make it working uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh);
SetUInt64Value( OBJECT_FIELD_GUID, guid ); SetUInt64Value( OBJECT_FIELD_GUID, guid );
SetUInt32Value( OBJECT_FIELD_TYPE, m_objectType ); SetUInt32Value( OBJECT_FIELD_TYPE, m_objectType );
m_PackGUID.clear(); m_PackGUID.clear();
@ -124,10 +124,10 @@ void Object::_Create( uint32 guidlow, uint32 entry, HighGuid guidhigh )
void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const
{ {
ByteBuffer buf(500); ByteBuffer buf(50);
buf << uint8( UPDATETYPE_MOVEMENT ); buf << uint8( UPDATETYPE_MOVEMENT );
buf << GetGUID(); buf.append(GetPackGUID());
_BuildMovementUpdate(&buf, flags, 0x00000000); _BuildMovementUpdate(&buf, flags, 0x00000000);
@ -137,16 +137,14 @@ void Object::BuildMovementUpdateBlock(UpdateData * data, uint32 flags ) const
void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const
{ {
if(!target) if(!target)
{
return; return;
}
uint8 updatetype = UPDATETYPE_CREATE_OBJECT; uint8 updatetype = UPDATETYPE_CREATE_OBJECT;
uint8 flags = m_updateFlag; uint8 flags = m_updateFlag;
uint32 flags2 = 0; uint32 flags2 = 0;
/** lower flag1 **/ /** lower flag1 **/
if(target == this) // building packet for oneself if(target == this) // building packet for yourself
flags |= UPDATEFLAG_SELF; flags |= UPDATEFLAG_SELF;
if(flags & UPDATEFLAG_HAS_POSITION) if(flags & UPDATEFLAG_HAS_POSITION)
@ -187,10 +185,9 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
//sLog.outDebug("BuildCreateUpdate: update-type: %u, object-type: %u got flags: %X, flags2: %X", updatetype, m_objectTypeId, flags, flags2); //sLog.outDebug("BuildCreateUpdate: update-type: %u, object-type: %u got flags: %X, flags2: %X", updatetype, m_objectTypeId, flags, flags2);
ByteBuffer buf(500); ByteBuffer buf(50);
buf << (uint8)updatetype; buf << (uint8)updatetype;
//buf.append(GetPackGUID()); //client crashes when using this buf.append(GetPackGUID());
buf << (uint8)0xFF << GetGUID();
buf << (uint8)m_objectTypeId; buf << (uint8)m_objectTypeId;
_BuildMovementUpdate(&buf, flags, flags2); _BuildMovementUpdate(&buf, flags, flags2);
@ -198,7 +195,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
UpdateMask updateMask; UpdateMask updateMask;
updateMask.SetCount( m_valuesCount ); updateMask.SetCount( m_valuesCount );
_SetCreateBits( &updateMask, target ); _SetCreateBits( &updateMask, target );
_BuildValuesUpdate(updatetype, &buf, &updateMask, target ); _BuildValuesUpdate(updatetype, &buf, &updateMask, target);
data->AddUpdateBlock(buf); data->AddUpdateBlock(buf);
} }
@ -221,24 +218,20 @@ void Object::SendUpdateToPlayer(Player* player)
BuildCreateUpdateBlockForPlayer(&upd, player); BuildCreateUpdateBlockForPlayer(&upd, player);
upd.BuildPacket(&packet); upd.BuildPacket(&packet);
player->GetSession()->SendPacket(&packet); player->GetSession()->SendPacket(&packet);
// now object updated/(create updated)
} }
void Object::BuildValuesUpdateBlockForPlayer(UpdateData *data, Player *target) const void Object::BuildValuesUpdateBlockForPlayer(UpdateData *data, Player *target) const
{ {
ByteBuffer buf(500); ByteBuffer buf(50);
buf << (uint8) UPDATETYPE_VALUES; buf << (uint8) UPDATETYPE_VALUES;
//buf.append(GetPackGUID()); //client crashes when using this. but not have crash in debug mode buf.append(GetPackGUID());
buf << (uint8)0xFF;
buf << GetGUID();
UpdateMask updateMask; UpdateMask updateMask;
updateMask.SetCount( m_valuesCount ); updateMask.SetCount( m_valuesCount );
_SetUpdateBits( &updateMask, target ); _SetUpdateBits( &updateMask, target );
_BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target ); _BuildValuesUpdate(UPDATETYPE_VALUES, &buf, &updateMask, target);
data->AddUpdateBlock(buf); data->AddUpdateBlock(buf);
} }
@ -253,7 +246,7 @@ void Object::DestroyForPlayer(Player *target) const
ASSERT(target); ASSERT(target);
WorldPacket data(SMSG_DESTROY_OBJECT, 8); WorldPacket data(SMSG_DESTROY_OBJECT, 8);
data << GetGUID(); data << uint64(GetGUID());
data << uint8(0); // WotLK (bool) data << uint8(0); // WotLK (bool)
target->GetSession()->SendPacket( &data ); target->GetSession()->SendPacket( &data );
} }
@ -575,7 +568,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
} }
} }
} }
else //case UPDATETYPE_VALUES else // case UPDATETYPE_VALUES
{ {
if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport()) if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport())
{ {
@ -665,7 +658,7 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
*data << uint32(1); *data << uint32(1);
break; break;
default: default:
*data << uint32(0); // unknown. not happen. *data << uint32(0); // unknown, not happen.
break; break;
} }
} }
@ -906,21 +899,21 @@ void Object::ApplyModUInt32Value(uint16 index, int32 val, bool apply)
cur += (apply ? val : -val); cur += (apply ? val : -val);
if(cur < 0) if(cur < 0)
cur = 0; cur = 0;
SetUInt32Value(index,cur); SetUInt32Value(index, cur);
} }
void Object::ApplyModInt32Value(uint16 index, int32 val, bool apply) void Object::ApplyModInt32Value(uint16 index, int32 val, bool apply)
{ {
int32 cur = GetInt32Value(index); int32 cur = GetInt32Value(index);
cur += (apply ? val : -val); cur += (apply ? val : -val);
SetInt32Value(index,cur); SetInt32Value(index, cur);
} }
void Object::ApplyModSignedFloatValue(uint16 index, float val, bool apply) void Object::ApplyModSignedFloatValue(uint16 index, float val, bool apply)
{ {
float cur = GetFloatValue(index); float cur = GetFloatValue(index);
cur += (apply ? val : -val); cur += (apply ? val : -val);
SetFloatValue(index,cur); SetFloatValue(index, cur);
} }
void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply) void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply)
@ -929,7 +922,7 @@ void Object::ApplyModPositiveFloatValue(uint16 index, float val, bool apply)
cur += (apply ? val : -val); cur += (apply ? val : -val);
if(cur < 0) if(cur < 0)
cur = 0; cur = 0;
SetFloatValue(index,cur); SetFloatValue(index, cur);
} }
void Object::SetFlag( uint16 index, uint32 newFlag ) void Object::SetFlag( uint16 index, uint32 newFlag )
@ -1048,17 +1041,17 @@ void WorldObject::_Create( uint32 guidlow, HighGuid guidhigh, uint32 mapid, uint
uint32 WorldObject::GetZoneId() const uint32 WorldObject::GetZoneId() const
{ {
return MapManager::Instance().GetBaseMap(m_mapId)->GetZoneId(m_positionX,m_positionY,m_positionZ); return MapManager::Instance().GetBaseMap(m_mapId)->GetZoneId(m_positionX, m_positionY, m_positionZ);
} }
uint32 WorldObject::GetAreaId() const uint32 WorldObject::GetAreaId() const
{ {
return MapManager::Instance().GetBaseMap(m_mapId)->GetAreaId(m_positionX,m_positionY,m_positionZ); return MapManager::Instance().GetBaseMap(m_mapId)->GetAreaId(m_positionX, m_positionY, m_positionZ);
} }
void WorldObject::GetZoneAndAreaId(uint32& zoneid, uint32& areaid) const void WorldObject::GetZoneAndAreaId(uint32& zoneid, uint32& areaid) const
{ {
MapManager::Instance().GetBaseMap(m_mapId)->GetZoneAndAreaId(zoneid,areaid,m_positionX,m_positionY,m_positionZ); MapManager::Instance().GetBaseMap(m_mapId)->GetZoneAndAreaId(zoneid, areaid, m_positionX, m_positionY, m_positionZ);
} }
InstanceData* WorldObject::GetInstanceData() InstanceData* WorldObject::GetInstanceData()
@ -1480,10 +1473,10 @@ void WorldObject::BuildMonsterChat(WorldPacket *data, uint8 msgtype, char const*
*data << (uint8)msgtype; *data << (uint8)msgtype;
*data << (uint32)language; *data << (uint32)language;
*data << (uint64)GetGUID(); *data << (uint64)GetGUID();
*data << (uint32)0; //2.1.0 *data << (uint32)0; // 2.1.0
*data << (uint32)(strlen(name)+1); *data << (uint32)(strlen(name)+1);
*data << name; *data << name;
*data << (uint64)targetGuid; //Unit Target *data << (uint64)targetGuid; // Unit Target
if( targetGuid && !IS_PLAYER_GUID(targetGuid) ) if( targetGuid && !IS_PLAYER_GUID(targetGuid) )
{ {
*data << (uint32)1; // target name length *data << (uint32)1; // target name length
@ -1506,7 +1499,7 @@ void WorldObject::BuildHeartBeatMsg(WorldPacket *data) const
data->append(GetPackGUID()); data->append(GetPackGUID());
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags *data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
*data << uint16(0); // 2.3.0 *data << uint16(0); // 2.3.0
*data << getMSTime(); // time *data << uint32(getMSTime()); // time
*data << m_positionX; *data << m_positionX;
*data << m_positionY; *data << m_positionY;
*data << m_positionZ; *data << m_positionZ;
@ -1525,7 +1518,7 @@ void WorldObject::BuildTeleportAckMsg(WorldPacket *data, float x, float y, float
*data << uint32(0); // this value increments every time *data << uint32(0); // this value increments every time
*data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags *data << uint32(((Unit*)this)->GetUnitMovementFlags()); // movement flags
*data << uint16(0); // 2.3.0 *data << uint16(0); // 2.3.0
*data << getMSTime(); // time *data << uint32(getMSTime()); // time
*data << x; *data << x;
*data << y; *data << y;
*data << z; *data << z;
@ -1604,7 +1597,7 @@ Creature* WorldObject::SummonCreature(uint32 id, float x, float y, float z, floa
if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->AI()) if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->AI())
((Creature*)this)->AI()->JustSummoned(pCreature); ((Creature*)this)->AI()->JustSummoned(pCreature);
//return the creature therewith the summoner has access to it // return the creature therewith the summoner has access to it
return pCreature; return pCreature;
} }
@ -1825,7 +1818,7 @@ void WorldObject::PlayDistanceSound( uint32 sound_id, Player* target /*= NULL*/
{ {
WorldPacket data(SMSG_PLAY_OBJECT_SOUND,4+8); WorldPacket data(SMSG_PLAY_OBJECT_SOUND,4+8);
data << uint32(sound_id); data << uint32(sound_id);
data << GetGUID(); data << uint64(GetGUID());
if (target) if (target)
target->SendDirectMessage( &data ); target->SendDirectMessage( &data );
else else

View file

@ -46,9 +46,7 @@ enum TypeMask
TYPEMASK_PLAYER = 0x0010, TYPEMASK_PLAYER = 0x0010,
TYPEMASK_GAMEOBJECT = 0x0020, TYPEMASK_GAMEOBJECT = 0x0020,
TYPEMASK_DYNAMICOBJECT = 0x0040, TYPEMASK_DYNAMICOBJECT = 0x0040,
TYPEMASK_CORPSE = 0x0080, TYPEMASK_CORPSE = 0x0080
TYPEMASK_AIGROUP = 0x0100,
TYPEMASK_AREATRIGGER = 0x0200
}; };
enum TypeID enum TypeID
@ -60,11 +58,10 @@ enum TypeID
TYPEID_PLAYER = 4, TYPEID_PLAYER = 4,
TYPEID_GAMEOBJECT = 5, TYPEID_GAMEOBJECT = 5,
TYPEID_DYNAMICOBJECT = 6, TYPEID_DYNAMICOBJECT = 6,
TYPEID_CORPSE = 7, TYPEID_CORPSE = 7
TYPEID_AIGROUP = 8,
TYPEID_AREATRIGGER = 9
}; };
#define MAX_TYPEID 10
#define NUM_CLIENT_OBJECT_TYPES 8
uint32 GuidHigh2TypeId(uint32 guid_hi); uint32 GuidHigh2TypeId(uint32 guid_hi);

View file

@ -116,7 +116,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x057*/ { "CMSG_ITEM_QUERY_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x057*/ { "CMSG_ITEM_QUERY_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x058*/ { "SMSG_ITEM_QUERY_SINGLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x058*/ { "SMSG_ITEM_QUERY_SINGLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x059*/ { "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x059*/ { "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x05A*/ { "CMSG_PAGE_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandlePageQueryOpcode }, /*0x05A*/ { "CMSG_PAGE_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandlePageTextQueryOpcode },
/*0x05B*/ { "SMSG_PAGE_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x05B*/ { "SMSG_PAGE_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestQueryOpcode }, /*0x05C*/ { "CMSG_QUEST_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestQueryOpcode },
/*0x05D*/ { "SMSG_QUEST_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x05D*/ { "SMSG_QUEST_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -128,28 +128,28 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x063*/ { "SMSG_WHO", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x063*/ { "SMSG_WHO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x064*/ { "CMSG_WHOIS", STATUS_LOGGEDIN, &WorldSession::HandleWhoisOpcode }, /*0x064*/ { "CMSG_WHOIS", STATUS_LOGGEDIN, &WorldSession::HandleWhoisOpcode },
/*0x065*/ { "SMSG_WHOIS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x065*/ { "SMSG_WHOIS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x066*/ { "CMSG_CONTACT_LIST", STATUS_LOGGEDIN, &WorldSession::HandleFriendListOpcode }, /*0x066*/ { "CMSG_CONTACT_LIST", STATUS_LOGGEDIN, &WorldSession::HandleContactListOpcode },
/*0x067*/ { "SMSG_CONTACT_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x067*/ { "SMSG_CONTACT_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x068*/ { "SMSG_FRIEND_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x068*/ { "SMSG_FRIEND_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x069*/ { "CMSG_ADD_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleAddFriendOpcode }, /*0x069*/ { "CMSG_ADD_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleAddFriendOpcode },
/*0x06A*/ { "CMSG_DEL_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleDelFriendOpcode }, /*0x06A*/ { "CMSG_DEL_FRIEND", STATUS_LOGGEDIN, &WorldSession::HandleDelFriendOpcode },
/*0x06B*/ { "CMSG_SET_CONTACT_NOTES", STATUS_LOGGEDIN, &WorldSession::HandleSetFriendNoteOpcode }, /*0x06B*/ { "CMSG_SET_CONTACT_NOTES", STATUS_LOGGEDIN, &WorldSession::HandleSetContactNotesOpcode },
/*0x06C*/ { "CMSG_ADD_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleAddIgnoreOpcode }, /*0x06C*/ { "CMSG_ADD_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleAddIgnoreOpcode },
/*0x06D*/ { "CMSG_DEL_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleDelIgnoreOpcode }, /*0x06D*/ { "CMSG_DEL_IGNORE", STATUS_LOGGEDIN, &WorldSession::HandleDelIgnoreOpcode },
/*0x06E*/ { "CMSG_GROUP_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupInviteOpcode }, /*0x06E*/ { "CMSG_GROUP_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupInviteOpcode },
/*0x06F*/ { "SMSG_GROUP_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x06F*/ { "SMSG_GROUP_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x070*/ { "CMSG_GROUP_CANCEL", STATUS_LOGGEDIN, &WorldSession::Handle_Deprecated }, /*0x070*/ { "CMSG_GROUP_CANCEL", STATUS_LOGGEDIN, &WorldSession::Handle_NULL },
/*0x071*/ { "SMSG_GROUP_CANCEL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x071*/ { "SMSG_GROUP_CANCEL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x072*/ { "CMSG_GROUP_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleGroupAcceptOpcode }, /*0x072*/ { "CMSG_GROUP_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleGroupAcceptOpcode },
/*0x073*/ { "CMSG_GROUP_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleGroupDeclineOpcode }, /*0x073*/ { "CMSG_GROUP_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleGroupDeclineOpcode },
/*0x074*/ { "SMSG_GROUP_DECLINE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x074*/ { "SMSG_GROUP_DECLINE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x075*/ { "CMSG_GROUP_UNINVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteNameOpcode }, /*0x075*/ { "CMSG_GROUP_UNINVITE", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteOpcode },
/*0x076*/ { "CMSG_GROUP_UNINVITE_GUID", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteGuidOpcode }, /*0x076*/ { "CMSG_GROUP_UNINVITE_GUID", STATUS_LOGGEDIN, &WorldSession::HandleGroupUninviteGuidOpcode },
/*0x077*/ { "SMSG_GROUP_UNINVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x077*/ { "SMSG_GROUP_UNINVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x078*/ { "CMSG_GROUP_SET_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupSetLeaderOpcode }, /*0x078*/ { "CMSG_GROUP_SET_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupSetLeaderOpcode },
/*0x079*/ { "SMSG_GROUP_SET_LEADER", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x079*/ { "SMSG_GROUP_SET_LEADER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x07A*/ { "CMSG_LOOT_METHOD", STATUS_LOGGEDIN, &WorldSession::HandleLootMethodOpcode }, /*0x07A*/ { "CMSG_LOOT_METHOD", STATUS_LOGGEDIN, &WorldSession::HandleLootMethodOpcode },
/*0x07B*/ { "CMSG_GROUP_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleGroupLeaveOpcode }, /*0x07B*/ { "CMSG_GROUP_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleGroupDisbandOpcode },
/*0x07C*/ { "SMSG_GROUP_DESTROYED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x07C*/ { "SMSG_GROUP_DESTROYED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x07D*/ { "SMSG_GROUP_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x07D*/ { "SMSG_GROUP_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x07E*/ { "SMSG_PARTY_MEMBER_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x07E*/ { "SMSG_PARTY_MEMBER_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -177,8 +177,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x094*/ { "UMSG_UPDATE_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x094*/ { "UMSG_UPDATE_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x095*/ { "CMSG_MESSAGECHAT", STATUS_LOGGEDIN, &WorldSession::HandleMessagechatOpcode }, /*0x095*/ { "CMSG_MESSAGECHAT", STATUS_LOGGEDIN, &WorldSession::HandleMessagechatOpcode },
/*0x096*/ { "SMSG_MESSAGECHAT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x096*/ { "SMSG_MESSAGECHAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x097*/ { "CMSG_JOIN_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleChannelJoin }, /*0x097*/ { "CMSG_JOIN_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleJoinChannel },
/*0x098*/ { "CMSG_LEAVE_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleChannelLeave }, /*0x098*/ { "CMSG_LEAVE_CHANNEL", STATUS_LOGGEDIN, &WorldSession::HandleLeaveChannel },
/*0x099*/ { "SMSG_CHANNEL_NOTIFY", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x099*/ { "SMSG_CHANNEL_NOTIFY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x09A*/ { "CMSG_CHANNEL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelList }, /*0x09A*/ { "CMSG_CHANNEL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelList },
/*0x09B*/ { "SMSG_CHANNEL_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x09B*/ { "SMSG_CHANNEL_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -193,7 +193,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x0A4*/ { "CMSG_CHANNEL_KICK", STATUS_LOGGEDIN, &WorldSession::HandleChannelKick }, /*0x0A4*/ { "CMSG_CHANNEL_KICK", STATUS_LOGGEDIN, &WorldSession::HandleChannelKick },
/*0x0A5*/ { "CMSG_CHANNEL_BAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelBan }, /*0x0A5*/ { "CMSG_CHANNEL_BAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelBan },
/*0x0A6*/ { "CMSG_CHANNEL_UNBAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelUnban }, /*0x0A6*/ { "CMSG_CHANNEL_UNBAN", STATUS_LOGGEDIN, &WorldSession::HandleChannelUnban },
/*0x0A7*/ { "CMSG_CHANNEL_ANNOUNCEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleChannelAnnounce }, /*0x0A7*/ { "CMSG_CHANNEL_ANNOUNCEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleChannelAnnouncements },
/*0x0A8*/ { "CMSG_CHANNEL_MODERATE", STATUS_LOGGEDIN, &WorldSession::HandleChannelModerate }, /*0x0A8*/ { "CMSG_CHANNEL_MODERATE", STATUS_LOGGEDIN, &WorldSession::HandleChannelModerate },
/*0x0A9*/ { "SMSG_UPDATE_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0A9*/ { "SMSG_UPDATE_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x0AA*/ { "SMSG_DESTROY_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0AA*/ { "SMSG_DESTROY_OBJECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -246,7 +246,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x0D9*/ { "MSG_MOVE_TOGGLE_COLLISION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x0D9*/ { "MSG_MOVE_TOGGLE_COLLISION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x0DA*/ { "MSG_MOVE_SET_FACING", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x0DA*/ { "MSG_MOVE_SET_FACING", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x0DB*/ { "MSG_MOVE_SET_PITCH", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x0DB*/ { "MSG_MOVE_SET_PITCH", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x0DC*/ { "MSG_MOVE_WORLDPORT_ACK", STATUS_TRANSFER_PENDING,&WorldSession::HandleMoveWorldportAckOpcode}, /*0x0DC*/ { "MSG_MOVE_WORLDPORT_ACK", STATUS_TRANSFER, &WorldSession::HandleMoveWorldportAckOpcode },
/*0x0DD*/ { "SMSG_MONSTER_MOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0DD*/ { "SMSG_MONSTER_MOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x0DE*/ { "SMSG_MOVE_WATER_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0DE*/ { "SMSG_MOVE_WATER_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x0DF*/ { "SMSG_MOVE_LAND_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0DF*/ { "SMSG_MOVE_LAND_WALK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -278,7 +278,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x0F9*/ { "CMSG_OPENING_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x0F9*/ { "CMSG_OPENING_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x0FA*/ { "SMSG_TRIGGER_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0FA*/ { "SMSG_TRIGGER_CINEMATIC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x0FB*/ { "CMSG_NEXT_CINEMATIC_CAMERA", STATUS_LOGGEDIN, &WorldSession::HandleNextCinematicCamera }, /*0x0FB*/ { "CMSG_NEXT_CINEMATIC_CAMERA", STATUS_LOGGEDIN, &WorldSession::HandleNextCinematicCamera },
/*0x0FC*/ { "CMSG_COMPLETE_CINEMATIC", STATUS_LOGGEDIN, &WorldSession::HandleCompleteCinema }, /*0x0FC*/ { "CMSG_COMPLETE_CINEMATIC", STATUS_LOGGEDIN, &WorldSession::HandleCompleteCinematic },
/*0x0FD*/ { "SMSG_TUTORIAL_FLAGS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x0FD*/ { "SMSG_TUTORIAL_FLAGS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x0FE*/ { "CMSG_TUTORIAL_FLAG", STATUS_LOGGEDIN, &WorldSession::HandleTutorialFlag }, /*0x0FE*/ { "CMSG_TUTORIAL_FLAG", STATUS_LOGGEDIN, &WorldSession::HandleTutorialFlag },
/*0x0FF*/ { "CMSG_TUTORIAL_CLEAR", STATUS_LOGGEDIN, &WorldSession::HandleTutorialClear }, /*0x0FF*/ { "CMSG_TUTORIAL_CLEAR", STATUS_LOGGEDIN, &WorldSession::HandleTutorialClear },
@ -416,11 +416,11 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x183*/ { "SMSG_QUESTGIVER_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x183*/ { "SMSG_QUESTGIVER_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x184*/ { "CMSG_QUESTGIVER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverHelloOpcode }, /*0x184*/ { "CMSG_QUESTGIVER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverHelloOpcode },
/*0x185*/ { "SMSG_QUESTGIVER_QUEST_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x185*/ { "SMSG_QUESTGIVER_QUEST_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x186*/ { "CMSG_QUESTGIVER_QUERY_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQuestQueryOpcode}, /*0x186*/ { "CMSG_QUESTGIVER_QUERY_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQueryQuestOpcode},
/*0x187*/ { "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH", STATUS_LOGGEDIN, &WorldSession::HandleQuestAutoLaunch }, /*0x187*/ { "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverQuestAutoLaunch },
/*0x188*/ { "SMSG_QUESTGIVER_QUEST_DETAILS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x188*/ { "SMSG_QUESTGIVER_QUEST_DETAILS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x189*/ { "CMSG_QUESTGIVER_ACCEPT_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverAcceptQuestOpcode}, /*0x189*/ { "CMSG_QUESTGIVER_ACCEPT_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverAcceptQuestOpcode},
/*0x18A*/ { "CMSG_QUESTGIVER_COMPLETE_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestComplete }, /*0x18A*/ { "CMSG_QUESTGIVER_COMPLETE_QUEST", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverCompleteQuest },
/*0x18B*/ { "SMSG_QUESTGIVER_REQUEST_ITEMS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x18B*/ { "SMSG_QUESTGIVER_REQUEST_ITEMS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x18C*/ { "CMSG_QUESTGIVER_REQUEST_REWARD", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverRequestRewardOpcode}, /*0x18C*/ { "CMSG_QUESTGIVER_REQUEST_REWARD", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverRequestRewardOpcode},
/*0x18D*/ { "SMSG_QUESTGIVER_OFFER_REWARD", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x18D*/ { "SMSG_QUESTGIVER_OFFER_REWARD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -439,7 +439,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x19A*/ { "SMSG_QUESTUPDATE_ADD_ITEM", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x19A*/ { "SMSG_QUESTUPDATE_ADD_ITEM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x19B*/ { "CMSG_QUEST_CONFIRM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleQuestConfirmAccept }, /*0x19B*/ { "CMSG_QUEST_CONFIRM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleQuestConfirmAccept },
/*0x19C*/ { "SMSG_QUEST_CONFIRM_ACCEPT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x19C*/ { "SMSG_QUEST_CONFIRM_ACCEPT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x19D*/ { "CMSG_PUSHQUESTTOPARTY", STATUS_LOGGEDIN, &WorldSession::HandleQuestPushToParty }, /*0x19D*/ { "CMSG_PUSHQUESTTOPARTY", STATUS_LOGGEDIN, &WorldSession::HandlePushQuestToParty },
/*0x19E*/ { "CMSG_LIST_INVENTORY", STATUS_LOGGEDIN, &WorldSession::HandleListInventoryOpcode }, /*0x19E*/ { "CMSG_LIST_INVENTORY", STATUS_LOGGEDIN, &WorldSession::HandleListInventoryOpcode },
/*0x19F*/ { "SMSG_LIST_INVENTORY", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x19F*/ { "SMSG_LIST_INVENTORY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1A0*/ { "CMSG_SELL_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleSellItemOpcode }, /*0x1A0*/ { "CMSG_SELL_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleSellItemOpcode },
@ -492,7 +492,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x1CF*/ { "SMSG_QUERY_TIME_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1CF*/ { "SMSG_QUERY_TIME_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1D0*/ { "SMSG_LOG_XPGAIN", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1D0*/ { "SMSG_LOG_XPGAIN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1D1*/ { "SMSG_AURACASTLOG", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1D1*/ { "SMSG_AURACASTLOG", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1D2*/ { "CMSG_RECLAIM_CORPSE", STATUS_LOGGEDIN, &WorldSession::HandleCorpseReclaimOpcode }, /*0x1D2*/ { "CMSG_RECLAIM_CORPSE", STATUS_LOGGEDIN, &WorldSession::HandleReclaimCorpseOpcode },
/*0x1D3*/ { "CMSG_WRAP_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleWrapItemOpcode }, /*0x1D3*/ { "CMSG_WRAP_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleWrapItemOpcode },
/*0x1D4*/ { "SMSG_LEVELUP_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1D4*/ { "SMSG_LEVELUP_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1D5*/ { "MSG_MINIMAP_PING", STATUS_LOGGEDIN, &WorldSession::HandleMinimapPingOpcode }, /*0x1D5*/ { "MSG_MINIMAP_PING", STATUS_LOGGEDIN, &WorldSession::HandleMinimapPingOpcode },
@ -523,7 +523,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x1EE*/ { "SMSG_AUTH_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1EE*/ { "SMSG_AUTH_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1EF*/ { "MSG_GM_SHOWLABEL", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x1EF*/ { "MSG_GM_SHOWLABEL", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x1F0*/ { "CMSG_PET_CAST_SPELL", STATUS_LOGGEDIN, &WorldSession::HandlePetCastSpellOpcode }, /*0x1F0*/ { "CMSG_PET_CAST_SPELL", STATUS_LOGGEDIN, &WorldSession::HandlePetCastSpellOpcode },
/*0x1F1*/ { "MSG_SAVE_GUILD_EMBLEM", STATUS_LOGGEDIN, &WorldSession::HandleGuildSaveEmblemOpcode }, /*0x1F1*/ { "MSG_SAVE_GUILD_EMBLEM", STATUS_LOGGEDIN, &WorldSession::HandleSaveGuildEmblemOpcode },
/*0x1F2*/ { "MSG_TABARDVENDOR_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleTabardVendorActivateOpcode}, /*0x1F2*/ { "MSG_TABARDVENDOR_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleTabardVendorActivateOpcode},
/*0x1F3*/ { "SMSG_PLAY_SPELL_VISUAL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x1F3*/ { "SMSG_PLAY_SPELL_VISUAL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x1F4*/ { "CMSG_ZONEUPDATE", STATUS_LOGGEDIN, &WorldSession::HandleZoneUpdateOpcode }, /*0x1F4*/ { "CMSG_ZONEUPDATE", STATUS_LOGGEDIN, &WorldSession::HandleZoneUpdateOpcode },
@ -561,7 +561,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x214*/ { "SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x214*/ { "SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x215*/ { "SMSG_GAMEOBJECT_DESPAWN_ANIM", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x215*/ { "SMSG_GAMEOBJECT_DESPAWN_ANIM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x216*/ { "MSG_CORPSE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleCorpseQueryOpcode }, /*0x216*/ { "MSG_CORPSE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleCorpseQueryOpcode },
/*0x217*/ { "CMSG_GMTICKET_DELETETICKET", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketDeleteOpcode }, /*0x217*/ { "CMSG_GMTICKET_DELETETICKET", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketDeleteTicketOpcode},
/*0x218*/ { "SMSG_GMTICKET_DELETETICKET", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x218*/ { "SMSG_GMTICKET_DELETETICKET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x219*/ { "SMSG_CHAT_WRONG_FACTION", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x219*/ { "SMSG_CHAT_WRONG_FACTION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x21A*/ { "CMSG_GMTICKET_SYSTEMSTATUS", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketSystemStatusOpcode}, /*0x21A*/ { "CMSG_GMTICKET_SYSTEMSTATUS", STATUS_LOGGEDIN, &WorldSession::HandleGMTicketSystemStatusOpcode},
@ -596,9 +596,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x237*/ { "CMSG_CLEAR_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x237*/ { "CMSG_CLEAR_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x238*/ { "CMSG_SEND_MAIL", STATUS_LOGGEDIN, &WorldSession::HandleSendMail }, /*0x238*/ { "CMSG_SEND_MAIL", STATUS_LOGGEDIN, &WorldSession::HandleSendMail },
/*0x239*/ { "SMSG_SEND_MAIL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x239*/ { "SMSG_SEND_MAIL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x23A*/ { "CMSG_GET_MAIL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleGetMail }, /*0x23A*/ { "CMSG_GET_MAIL_LIST", STATUS_LOGGEDIN, &WorldSession::HandleGetMailList },
/*0x23B*/ { "SMSG_MAIL_LIST_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x23B*/ { "SMSG_MAIL_LIST_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x23C*/ { "CMSG_BATTLEFIELD_LIST", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundListOpcode }, /*0x23C*/ { "CMSG_BATTLEFIELD_LIST", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldListOpcode },
/*0x23D*/ { "SMSG_BATTLEFIELD_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x23D*/ { "SMSG_BATTLEFIELD_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x23E*/ { "CMSG_BATTLEFIELD_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x23E*/ { "CMSG_BATTLEFIELD_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x23F*/ { "SMSG_BATTLEFIELD_WIN_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x23F*/ { "SMSG_BATTLEFIELD_WIN_OBSOLETE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -607,10 +607,10 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x242*/ { "CMSG_TAXIENABLENODE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x242*/ { "CMSG_TAXIENABLENODE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x243*/ { "CMSG_ITEM_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemTextQuery }, /*0x243*/ { "CMSG_ITEM_TEXT_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemTextQuery },
/*0x244*/ { "SMSG_ITEM_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x244*/ { "SMSG_ITEM_TEXT_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x245*/ { "CMSG_MAIL_TAKE_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleTakeMoney }, /*0x245*/ { "CMSG_MAIL_TAKE_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleMailTakeMoney },
/*0x246*/ { "CMSG_MAIL_TAKE_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleTakeItem }, /*0x246*/ { "CMSG_MAIL_TAKE_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailTakeItem },
/*0x247*/ { "CMSG_MAIL_MARK_AS_READ", STATUS_LOGGEDIN, &WorldSession::HandleMarkAsRead }, /*0x247*/ { "CMSG_MAIL_MARK_AS_READ", STATUS_LOGGEDIN, &WorldSession::HandleMailMarkAsRead },
/*0x248*/ { "CMSG_MAIL_RETURN_TO_SENDER", STATUS_LOGGEDIN, &WorldSession::HandleReturnToSender }, /*0x248*/ { "CMSG_MAIL_RETURN_TO_SENDER", STATUS_LOGGEDIN, &WorldSession::HandleMailReturnToSender },
/*0x249*/ { "CMSG_MAIL_DELETE", STATUS_LOGGEDIN, &WorldSession::HandleMailDelete }, /*0x249*/ { "CMSG_MAIL_DELETE", STATUS_LOGGEDIN, &WorldSession::HandleMailDelete },
/*0x24A*/ { "CMSG_MAIL_CREATE_TEXT_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailCreateTextItem }, /*0x24A*/ { "CMSG_MAIL_CREATE_TEXT_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleMailCreateTextItem },
/*0x24B*/ { "SMSG_SPELLLOGMISS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x24B*/ { "SMSG_SPELLLOGMISS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -670,7 +670,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x281*/ { "CMSG_RESET_FACTION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x281*/ { "CMSG_RESET_FACTION_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x282*/ { "CMSG_AUTOSTORE_BANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoStoreBankItemOpcode }, /*0x282*/ { "CMSG_AUTOSTORE_BANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoStoreBankItemOpcode },
/*0x283*/ { "CMSG_AUTOBANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoBankItemOpcode }, /*0x283*/ { "CMSG_AUTOBANK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleAutoBankItemOpcode },
/*0x284*/ { "MSG_QUERY_NEXT_MAIL_TIME", STATUS_LOGGEDIN, &WorldSession::HandleMsgQueryNextMailtime }, /*0x284*/ { "MSG_QUERY_NEXT_MAIL_TIME", STATUS_LOGGEDIN, &WorldSession::HandleQueryNextMailTime },
/*0x285*/ { "SMSG_RECEIVED_MAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x285*/ { "SMSG_RECEIVED_MAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x286*/ { "SMSG_RAID_GROUP_ONLY", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x286*/ { "SMSG_RAID_GROUP_ONLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x287*/ { "CMSG_SET_DURABILITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x287*/ { "CMSG_SET_DURABILITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -680,8 +680,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x28B*/ { "CMSG_SET_PVP_TITLE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x28B*/ { "CMSG_SET_PVP_TITLE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x28C*/ { "SMSG_PVP_CREDIT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x28C*/ { "SMSG_PVP_CREDIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x28D*/ { "SMSG_AUCTION_REMOVED_NOTIFICATION", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x28D*/ { "SMSG_AUCTION_REMOVED_NOTIFICATION", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x28E*/ { "CMSG_GROUP_RAID_CONVERT", STATUS_LOGGEDIN, &WorldSession::HandleRaidConvertOpcode }, /*0x28E*/ { "CMSG_GROUP_RAID_CONVERT", STATUS_LOGGEDIN, &WorldSession::HandleGroupRaidConvertOpcode },
/*0x28F*/ { "CMSG_GROUP_ASSISTANT_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupAssistantOpcode }, /*0x28F*/ { "CMSG_GROUP_ASSISTANT_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleGroupAssistantLeaderOpcode},
/*0x290*/ { "CMSG_BUYBACK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleBuybackItem }, /*0x290*/ { "CMSG_BUYBACK_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleBuybackItem },
/*0x291*/ { "SMSG_SERVER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x291*/ { "SMSG_SERVER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x292*/ { "CMSG_MEETINGSTONE_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x292*/ { "CMSG_MEETINGSTONE_JOIN", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -708,7 +708,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2A7*/ { "SMSG_GAMEOBJECT_RESET_STATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2A7*/ { "SMSG_GAMEOBJECT_RESET_STATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2A8*/ { "CMSG_REPAIR_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleRepairItemOpcode }, /*0x2A8*/ { "CMSG_REPAIR_ITEM", STATUS_LOGGEDIN, &WorldSession::HandleRepairItemOpcode },
/*0x2A9*/ { "SMSG_CHAT_PLAYER_NOT_FOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2A9*/ { "SMSG_CHAT_PLAYER_NOT_FOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2AA*/ { "MSG_TALENT_WIPE_CONFIRM", STATUS_LOGGEDIN, &WorldSession::HandleTalentWipeOpcode }, /*0x2AA*/ { "MSG_TALENT_WIPE_CONFIRM", STATUS_LOGGEDIN, &WorldSession::HandleTalentWipeConfirmOpcode },
/*0x2AB*/ { "SMSG_SUMMON_REQUEST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2AB*/ { "SMSG_SUMMON_REQUEST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2AC*/ { "CMSG_SUMMON_RESPONSE", STATUS_LOGGEDIN, &WorldSession::HandleSummonResponseOpcode }, /*0x2AC*/ { "CMSG_SUMMON_RESPONSE", STATUS_LOGGEDIN, &WorldSession::HandleSummonResponseOpcode },
/*0x2AD*/ { "MSG_MOVE_TOGGLE_GRAVITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x2AD*/ { "MSG_MOVE_TOGGLE_GRAVITY_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -723,13 +723,13 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2B6*/ { "SMSG_SCRIPT_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2B6*/ { "SMSG_SCRIPT_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2B7*/ { "SMSG_DUEL_COUNTDOWN", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2B7*/ { "SMSG_DUEL_COUNTDOWN", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2B8*/ { "SMSG_AREA_TRIGGER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2B8*/ { "SMSG_AREA_TRIGGER_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2B9*/ { "CMSG_SHOWING_HELM", STATUS_LOGGEDIN, &WorldSession::HandleToggleHelmOpcode }, /*0x2B9*/ { "CMSG_SHOWING_HELM", STATUS_LOGGEDIN, &WorldSession::HandleShowingHelmOpcode },
/*0x2BA*/ { "CMSG_SHOWING_CLOAK", STATUS_LOGGEDIN, &WorldSession::HandleToggleCloakOpcode }, /*0x2BA*/ { "CMSG_SHOWING_CLOAK", STATUS_LOGGEDIN, &WorldSession::HandleShowingCloakOpcode },
/*0x2BB*/ { "SMSG_MEETINGSTONE_JOINFAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2BB*/ { "SMSG_MEETINGSTONE_JOINFAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2BC*/ { "SMSG_PLAYER_SKINNED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2BC*/ { "SMSG_PLAYER_SKINNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2BD*/ { "SMSG_DURABILITY_DAMAGE_DEATH", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2BD*/ { "SMSG_DURABILITY_DAMAGE_DEATH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2BE*/ { "CMSG_SET_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x2BE*/ { "CMSG_SET_EXPLORATION", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x2BF*/ { "CMSG_SET_ACTIONBAR_TOGGLES", STATUS_AUTHED, &WorldSession::HandleSetActionBar }, /*0x2BF*/ { "CMSG_SET_ACTIONBAR_TOGGLES", STATUS_AUTHED, &WorldSession::HandleSetActionBarToggles },
/*0x2C0*/ { "UMSG_DELETE_GUILD_CHARTER", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x2C0*/ { "UMSG_DELETE_GUILD_CHARTER", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x2C1*/ { "MSG_PETITION_RENAME", STATUS_LOGGEDIN, &WorldSession::HandlePetitionRenameOpcode }, /*0x2C1*/ { "MSG_PETITION_RENAME", STATUS_LOGGEDIN, &WorldSession::HandlePetitionRenameOpcode },
/*0x2C2*/ { "SMSG_INIT_WORLD_STATES", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2C2*/ { "SMSG_INIT_WORLD_STATES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -737,9 +737,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2C4*/ { "CMSG_ITEM_NAME_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemNameQueryOpcode }, /*0x2C4*/ { "CMSG_ITEM_NAME_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleItemNameQueryOpcode },
/*0x2C5*/ { "SMSG_ITEM_NAME_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2C5*/ { "SMSG_ITEM_NAME_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2C6*/ { "SMSG_PET_ACTION_FEEDBACK", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2C6*/ { "SMSG_PET_ACTION_FEEDBACK", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2C7*/ { "CMSG_CHAR_RENAME", STATUS_AUTHED, &WorldSession::HandleChangePlayerNameOpcode }, /*0x2C7*/ { "CMSG_CHAR_RENAME", STATUS_AUTHED, &WorldSession::HandleCharRenameOpcode },
/*0x2C8*/ { "SMSG_CHAR_RENAME", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2C8*/ { "SMSG_CHAR_RENAME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2C9*/ { "CMSG_MOVE_SPLINE_DONE", STATUS_LOGGEDIN, &WorldSession::HandleTaxiNextDestinationOpcode }, /*0x2C9*/ { "CMSG_MOVE_SPLINE_DONE", STATUS_LOGGEDIN, &WorldSession::HandleMoveSplineDoneOpcode },
/*0x2CA*/ { "CMSG_MOVE_FALL_RESET", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x2CA*/ { "CMSG_MOVE_FALL_RESET", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x2CB*/ { "SMSG_INSTANCE_SAVE_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2CB*/ { "SMSG_INSTANCE_SAVE_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2CC*/ { "SMSG_RAID_INSTANCE_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2CC*/ { "SMSG_RAID_INSTANCE_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -751,9 +751,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2D2*/ { "SMSG_PLAY_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2D2*/ { "SMSG_PLAY_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2D3*/ { "CMSG_BATTLEFIELD_STATUS", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldStatusOpcode }, /*0x2D3*/ { "CMSG_BATTLEFIELD_STATUS", STATUS_LOGGEDIN, &WorldSession::HandleBattlefieldStatusOpcode },
/*0x2D4*/ { "SMSG_BATTLEFIELD_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2D4*/ { "SMSG_BATTLEFIELD_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2D5*/ { "CMSG_BATTLEFIELD_PORT", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPlayerPortOpcode}, /*0x2D5*/ { "CMSG_BATTLEFIELD_PORT", STATUS_LOGGEDIN, &WorldSession::HandleBattleFieldPortOpcode },
/*0x2D6*/ { "MSG_INSPECT_HONOR_STATS", STATUS_LOGGEDIN, &WorldSession::HandleInspectHonorStatsOpcode }, /*0x2D6*/ { "MSG_INSPECT_HONOR_STATS", STATUS_LOGGEDIN, &WorldSession::HandleInspectHonorStatsOpcode },
/*0x2D7*/ { "CMSG_BATTLEMASTER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundHelloOpcode }, /*0x2D7*/ { "CMSG_BATTLEMASTER_HELLO", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterHelloOpcode },
/*0x2D8*/ { "CMSG_MOVE_START_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x2D8*/ { "CMSG_MOVE_START_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x2D9*/ { "CMSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x2D9*/ { "CMSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x2DA*/ { "SMSG_FORCE_WALK_SPEED_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2DA*/ { "SMSG_FORCE_WALK_SPEED_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -762,8 +762,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2DD*/ { "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck }, /*0x2DD*/ { "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
/*0x2DE*/ { "SMSG_FORCE_TURN_RATE_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2DE*/ { "SMSG_FORCE_TURN_RATE_CHANGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2DF*/ { "CMSG_FORCE_TURN_RATE_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck }, /*0x2DF*/ { "CMSG_FORCE_TURN_RATE_CHANGE_ACK", STATUS_LOGGEDIN, &WorldSession::HandleForceSpeedChangeAck },
/*0x2E0*/ { "MSG_PVP_LOG_DATA", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPVPlogdataOpcode}, /*0x2E0*/ { "MSG_PVP_LOG_DATA", STATUS_LOGGEDIN, &WorldSession::HandlePVPLogDataOpcode },
/*0x2E1*/ { "CMSG_LEAVE_BATTLEFIELD", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundLeaveOpcode }, /*0x2E1*/ { "CMSG_LEAVE_BATTLEFIELD", STATUS_LOGGEDIN, &WorldSession::HandleLeaveBattlefieldOpcode },
/*0x2E2*/ { "CMSG_AREA_SPIRIT_HEALER_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueryOpcode}, /*0x2E2*/ { "CMSG_AREA_SPIRIT_HEALER_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueryOpcode},
/*0x2E3*/ { "CMSG_AREA_SPIRIT_HEALER_QUEUE", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueueOpcode}, /*0x2E3*/ { "CMSG_AREA_SPIRIT_HEALER_QUEUE", STATUS_LOGGEDIN, &WorldSession::HandleAreaSpiritHealerQueueOpcode},
/*0x2E4*/ { "SMSG_AREA_SPIRIT_HEALER_TIME", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2E4*/ { "SMSG_AREA_SPIRIT_HEALER_TIME", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -776,7 +776,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2EE*/ { "CMSG_BATTLEMASTER_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundJoinOpcode }, /*0x2EE*/ { "CMSG_BATTLEMASTER_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterJoinOpcode },
/*0x2EF*/ { "SMSG_ADDON_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2EF*/ { "SMSG_ADDON_INFO", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2F0*/ { "CMSG_PET_UNLEARN", STATUS_LOGGEDIN, &WorldSession::HandlePetUnlearnOpcode }, /*0x2F0*/ { "CMSG_PET_UNLEARN", STATUS_LOGGEDIN, &WorldSession::HandlePetUnlearnOpcode },
/*0x2F1*/ { "SMSG_PET_UNLEARN_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2F1*/ { "SMSG_PET_UNLEARN_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -790,7 +790,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2F9*/ { "SMSG_MINIGAME_MOVE_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2F9*/ { "SMSG_MINIGAME_MOVE_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2FA*/ { "SMSG_RAID_INSTANCE_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2FA*/ { "SMSG_RAID_INSTANCE_MESSAGE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2FB*/ { "SMSG_COMPRESSED_MOVES", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2FB*/ { "SMSG_COMPRESSED_MOVES", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2FC*/ { "CMSG_GUILD_INFO_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildChangeInfoOpcode }, /*0x2FC*/ { "CMSG_GUILD_INFO_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildChangeInfoTextOpcode },
/*0x2FD*/ { "SMSG_CHAT_RESTRICTED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2FD*/ { "SMSG_CHAT_RESTRICTED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2FE*/ { "SMSG_SPLINE_SET_RUN_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2FE*/ { "SMSG_SPLINE_SET_RUN_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2FF*/ { "SMSG_SPLINE_SET_RUN_BACK_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2FF*/ { "SMSG_SPLINE_SET_RUN_BACK_SPEED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -812,13 +812,13 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x30F*/ { "CMSG_GM_NUKE_ACCOUNT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x30F*/ { "CMSG_GM_NUKE_ACCOUNT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x310*/ { "MSG_GM_DESTROY_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x310*/ { "MSG_GM_DESTROY_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x311*/ { "CMSG_GM_DESTROY_ONLINE_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x311*/ { "CMSG_GM_DESTROY_ONLINE_CORPSE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x312*/ { "CMSG_ACTIVATETAXIEXPRESS", STATUS_LOGGEDIN, &WorldSession::HandleActivateTaxiFarOpcode }, /*0x312*/ { "CMSG_ACTIVATETAXIEXPRESS", STATUS_LOGGEDIN, &WorldSession::HandleActivateTaxiExpressOpcode },
/*0x313*/ { "SMSG_SET_FACTION_ATWAR", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x313*/ { "SMSG_SET_FACTION_ATWAR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x314*/ { "SMSG_GAMETIMEBIAS_SET", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x314*/ { "SMSG_GAMETIMEBIAS_SET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x315*/ { "CMSG_DEBUG_ACTIONS_START", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x315*/ { "CMSG_DEBUG_ACTIONS_START", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x316*/ { "CMSG_DEBUG_ACTIONS_STOP", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x316*/ { "CMSG_DEBUG_ACTIONS_STOP", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x317*/ { "CMSG_SET_FACTION_INACTIVE", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionInactiveOpcode}, /*0x317*/ { "CMSG_SET_FACTION_INACTIVE", STATUS_LOGGEDIN, &WorldSession::HandleSetFactionInactiveOpcode },
/*0x318*/ { "CMSG_SET_WATCHED_FACTION", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionIndexOpcode}, /*0x318*/ { "CMSG_SET_WATCHED_FACTION", STATUS_LOGGEDIN, &WorldSession::HandleSetWatchedFactionOpcode },
/*0x319*/ { "MSG_MOVE_TIME_SKIPPED", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x319*/ { "MSG_MOVE_TIME_SKIPPED", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x31A*/ { "SMSG_SPLINE_MOVE_ROOT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x31A*/ { "SMSG_SPLINE_MOVE_ROOT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x31B*/ { "CMSG_SET_EXPLORATION_ALL", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x31B*/ { "CMSG_SET_EXPLORATION_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -827,7 +827,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x31E*/ { "SMSG_INSTANCE_RESET", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x31E*/ { "SMSG_INSTANCE_RESET", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x31F*/ { "SMSG_INSTANCE_RESET_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x31F*/ { "SMSG_INSTANCE_RESET_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x320*/ { "SMSG_UPDATE_LAST_INSTANCE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x320*/ { "SMSG_UPDATE_LAST_INSTANCE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x321*/ { "MSG_RAID_TARGET_UPDATE", STATUS_LOGGEDIN, &WorldSession::HandleRaidIconTargetOpcode }, /*0x321*/ { "MSG_RAID_TARGET_UPDATE", STATUS_LOGGEDIN, &WorldSession::HandleRaidTargetUpdateOpcode },
/*0x322*/ { "MSG_RAID_READY_CHECK", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckOpcode }, /*0x322*/ { "MSG_RAID_READY_CHECK", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckOpcode },
/*0x323*/ { "CMSG_LUA_USAGE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x323*/ { "CMSG_LUA_USAGE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x324*/ { "SMSG_PET_ACTION_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x324*/ { "SMSG_PET_ACTION_SOUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -835,7 +835,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x326*/ { "SMSG_GHOSTEE_GONE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x326*/ { "SMSG_GHOSTEE_GONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x327*/ { "CMSG_GM_UPDATE_TICKET_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x327*/ { "CMSG_GM_UPDATE_TICKET_STATUS", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x328*/ { "SMSG_GM_TICKET_STATUS_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x328*/ { "SMSG_GM_TICKET_STATUS_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x329*/ { "MSG_SET_DUNGEON_DIFFICULTY", STATUS_LOGGEDIN, &WorldSession::HandleDungeonDifficultyOpcode }, /*0x329*/ { "MSG_SET_DUNGEON_DIFFICULTY", STATUS_LOGGEDIN, &WorldSession::HandleSetDungeonDifficultyOpcode},
/*0x32A*/ { "CMSG_GMSURVEY_SUBMIT", STATUS_LOGGEDIN, &WorldSession::HandleGMSurveySubmit }, /*0x32A*/ { "CMSG_GMSURVEY_SUBMIT", STATUS_LOGGEDIN, &WorldSession::HandleGMSurveySubmit },
/*0x32B*/ { "SMSG_UPDATE_INSTANCE_OWNERSHIP", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x32B*/ { "SMSG_UPDATE_INSTANCE_OWNERSHIP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x32C*/ { "CMSG_IGNORE_KNOCKBACK_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x32C*/ { "CMSG_IGNORE_KNOCKBACK_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -863,7 +863,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x342*/ { "MSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x342*/ { "MSG_MOVE_STOP_SWIM_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x343*/ { "SMSG_MOVE_SET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x343*/ { "SMSG_MOVE_SET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x344*/ { "SMSG_MOVE_UNSET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x344*/ { "SMSG_MOVE_UNSET_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x345*/ { "CMSG_MOVE_SET_CAN_FLY_ACK", STATUS_LOGGEDIN, &WorldSession::HandleMoveFlyModeChangeAckOpcode}, /*0x345*/ { "CMSG_MOVE_SET_CAN_FLY_ACK", STATUS_LOGGEDIN, &WorldSession::HandleMoveSetCanFlyAckOpcode },
/*0x346*/ { "CMSG_MOVE_SET_FLY", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x346*/ { "CMSG_MOVE_SET_FLY", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x347*/ { "CMSG_SOCKET_GEMS", STATUS_LOGGEDIN, &WorldSession::HandleSocketOpcode }, /*0x347*/ { "CMSG_SOCKET_GEMS", STATUS_LOGGEDIN, &WorldSession::HandleSocketOpcode },
/*0x348*/ { "CMSG_ARENA_TEAM_CREATE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x348*/ { "CMSG_ARENA_TEAM_CREATE", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -873,30 +873,30 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x34C*/ { "SMSG_ARENA_TEAM_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x34C*/ { "SMSG_ARENA_TEAM_QUERY_RESPONSE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x34D*/ { "CMSG_ARENA_TEAM_ROSTER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRosterOpcode }, /*0x34D*/ { "CMSG_ARENA_TEAM_ROSTER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRosterOpcode },
/*0x34E*/ { "SMSG_ARENA_TEAM_ROSTER", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x34E*/ { "SMSG_ARENA_TEAM_ROSTER", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x34F*/ { "CMSG_ARENA_TEAM_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamAddMemberOpcode }, /*0x34F*/ { "CMSG_ARENA_TEAM_INVITE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteOpcode },
/*0x350*/ { "SMSG_ARENA_TEAM_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x350*/ { "SMSG_ARENA_TEAM_INVITE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x351*/ { "CMSG_ARENA_TEAM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteAcceptOpcode}, /*0x351*/ { "CMSG_ARENA_TEAM_ACCEPT", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamAcceptOpcode },
/*0x352*/ { "CMSG_ARENA_TEAM_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamInviteDeclineOpcode}, /*0x352*/ { "CMSG_ARENA_TEAM_DECLINE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDeclineOpcode },
/*0x353*/ { "CMSG_ARENA_TEAM_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaveOpcode }, /*0x353*/ { "CMSG_ARENA_TEAM_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaveOpcode },
/*0x354*/ { "CMSG_ARENA_TEAM_REMOVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRemoveFromTeamOpcode}, /*0x354*/ { "CMSG_ARENA_TEAM_REMOVE", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamRemoveOpcode },
/*0x355*/ { "CMSG_ARENA_TEAM_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDisbandOpcode }, /*0x355*/ { "CMSG_ARENA_TEAM_DISBAND", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamDisbandOpcode },
/*0x356*/ { "CMSG_ARENA_TEAM_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamPromoteToCaptainOpcode}, /*0x356*/ { "CMSG_ARENA_TEAM_LEADER", STATUS_LOGGEDIN, &WorldSession::HandleArenaTeamLeaderOpcode },
/*0x357*/ { "SMSG_ARENA_TEAM_EVENT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x357*/ { "SMSG_ARENA_TEAM_EVENT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x358*/ { "CMSG_BATTLEMASTER_JOIN_ARENA", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundArenaJoin }, /*0x358*/ { "CMSG_BATTLEMASTER_JOIN_ARENA", STATUS_LOGGEDIN, &WorldSession::HandleBattlemasterJoinArena },
/*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x35C*/ { "CMSG_LFG_SET_AUTOJOIN", STATUS_AUTHED, &WorldSession::HandleLfgAutoJoinOpcode }, /*0x35C*/ { "CMSG_LFG_SET_AUTOJOIN", STATUS_AUTHED, &WorldSession::HandleLfgSetAutoJoinOpcode },
/*0x35D*/ { "CMSG_LFG_CLEAR_AUTOJOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgCancelAutoJoinOpcode }, /*0x35D*/ { "CMSG_LFG_CLEAR_AUTOJOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearAutoJoinOpcode },
/*0x35E*/ { "CMSG_LFM_SET_AUTOFILL", STATUS_AUTHED, &WorldSession::HandleLfmAutoAddMembersOpcode }, /*0x35E*/ { "CMSG_LFM_SET_AUTOFILL", STATUS_AUTHED, &WorldSession::HandleLfmSetAutoFillOpcode },
/*0x35F*/ { "CMSG_LFM_CLEAR_AUTOFILL", STATUS_LOGGEDIN, &WorldSession::HandleLfmCancelAutoAddmembersOpcode}, /*0x35F*/ { "CMSG_LFM_CLEAR_AUTOFILL", STATUS_LOGGEDIN, &WorldSession::HandleLfmClearAutoFillOpcode },
/*0x360*/ { "CMSG_ACCEPT_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x360*/ { "CMSG_ACCEPT_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x361*/ { "CMSG_DECLINE_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x361*/ { "CMSG_DECLINE_LFG_MATCH", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x362*/ { "CMSG_CANCEL_PENDING_LFG", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x362*/ { "CMSG_CANCEL_PENDING_LFG", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x363*/ { "CMSG_CLEAR_LOOKING_FOR_GROUP", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearOpcode }, /*0x363*/ { "CMSG_CLEAR_LOOKING_FOR_GROUP", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearOpcode },
/*0x364*/ { "CMSG_CLEAR_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmSetNoneOpcode }, /*0x364*/ { "CMSG_CLEAR_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmClearOpcode },
/*0x365*/ { "CMSG_SET_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleLfmSetOpcode }, /*0x365*/ { "CMSG_SET_LOOKING_FOR_MORE", STATUS_LOGGEDIN, &WorldSession::HandleSetLfmOpcode },
/*0x366*/ { "CMSG_SET_LFG_COMMENT", STATUS_LOGGEDIN, &WorldSession::HandleLfgSetCommentOpcode }, /*0x366*/ { "CMSG_SET_LFG_COMMENT", STATUS_LOGGEDIN, &WorldSession::HandleSetLfgCommentOpcode },
/*0x367*/ { "SMSG_LFG_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x367*/ { "SMSG_LFG_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x368*/ { "SMSG_LFG_OTHER_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x368*/ { "SMSG_LFG_OTHER_TIMEDOUT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x369*/ { "SMSG_LFG_AUTOJOIN_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x369*/ { "SMSG_LFG_AUTOJOIN_FAILED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -910,12 +910,12 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x371*/ { "SMSG_LFG_PENDING_MATCH", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x371*/ { "SMSG_LFG_PENDING_MATCH", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x372*/ { "SMSG_LFG_PENDING_MATCH_DONE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x372*/ { "SMSG_LFG_PENDING_MATCH_DONE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x373*/ { "SMSG_TITLE_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x373*/ { "SMSG_TITLE_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x374*/ { "CMSG_SET_TITLE", STATUS_LOGGEDIN, &WorldSession::HandleChooseTitleOpcode }, /*0x374*/ { "CMSG_SET_TITLE", STATUS_LOGGEDIN, &WorldSession::HandleSetTitleOpcode },
/*0x375*/ { "CMSG_CANCEL_MOUNT_AURA", STATUS_LOGGEDIN, &WorldSession::HandleDismountOpcode }, /*0x375*/ { "CMSG_CANCEL_MOUNT_AURA", STATUS_LOGGEDIN, &WorldSession::HandleCancelMountAuraOpcode },
/*0x376*/ { "SMSG_ARENA_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x376*/ { "SMSG_ARENA_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x377*/ { "MSG_INSPECT_ARENA_TEAMS", STATUS_LOGGEDIN, &WorldSession::HandleInspectArenaStatsOpcode }, /*0x377*/ { "MSG_INSPECT_ARENA_TEAMS", STATUS_LOGGEDIN, &WorldSession::HandleInspectArenaTeamsOpcode },
/*0x378*/ { "SMSG_DEATH_RELEASE_LOC", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x378*/ { "SMSG_DEATH_RELEASE_LOC", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x379*/ { "CMSG_CANCEL_TEMP_ENCHANTMENT", STATUS_LOGGEDIN, &WorldSession::HandleCancelTempItemEnchantmentOpcode}, /*0x379*/ { "CMSG_CANCEL_TEMP_ENCHANTMENT", STATUS_LOGGEDIN, &WorldSession::HandleCancelTempEnchantmentOpcode},
/*0x37A*/ { "SMSG_FORCED_DEATH_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x37A*/ { "SMSG_FORCED_DEATH_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x37B*/ { "CMSG_CHEAT_SET_HONOR_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x37B*/ { "CMSG_CHEAT_SET_HONOR_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x37C*/ { "CMSG_CHEAT_SET_ARENA_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x37C*/ { "CMSG_CHEAT_SET_ARENA_CURRENCY", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -934,9 +934,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x389*/ { "CMSG_SET_TAXI_BENCHMARK_MODE", STATUS_AUTHED, &WorldSession::HandleSetTaxiBenchmarkOpcode }, /*0x389*/ { "CMSG_SET_TAXI_BENCHMARK_MODE", STATUS_AUTHED, &WorldSession::HandleSetTaxiBenchmarkOpcode },
/*0x38A*/ { "SMSG_JOINED_BATTLEGROUND_QUEUE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x38A*/ { "SMSG_JOINED_BATTLEGROUND_QUEUE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x38B*/ { "SMSG_REALM_SPLIT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x38B*/ { "SMSG_REALM_SPLIT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x38C*/ { "CMSG_REALM_SPLIT", STATUS_AUTHED, &WorldSession::HandleRealmStateRequestOpcode }, /*0x38C*/ { "CMSG_REALM_SPLIT", STATUS_AUTHED, &WorldSession::HandleRealmSplitOpcode },
/*0x38D*/ { "CMSG_MOVE_CHNG_TRANSPORT", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes }, /*0x38D*/ { "CMSG_MOVE_CHNG_TRANSPORT", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
/*0x38E*/ { "MSG_PARTY_ASSIGNMENT", STATUS_LOGGEDIN, &WorldSession::HandleGroupPromoteOpcode }, /*0x38E*/ { "MSG_PARTY_ASSIGNMENT", STATUS_LOGGEDIN, &WorldSession::HandlePartyAssignmentOpcode },
/*0x38F*/ { "SMSG_OFFER_PETITION_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x38F*/ { "SMSG_OFFER_PETITION_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x390*/ { "SMSG_TIME_SYNC_REQ", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x390*/ { "SMSG_TIME_SYNC_REQ", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x391*/ { "CMSG_TIME_SYNC_RESP", STATUS_LOGGEDIN, &WorldSession::HandleTimeSyncResp }, /*0x391*/ { "CMSG_TIME_SYNC_RESP", STATUS_LOGGEDIN, &WorldSession::HandleTimeSyncResp },
@ -969,7 +969,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3AC*/ { "SMSG_DISMOUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3AC*/ { "SMSG_DISMOUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3AD*/ { "MSG_MOVE_UPDATE_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3AD*/ { "MSG_MOVE_UPDATE_CAN_FLY", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3AE*/ { "MSG_RAID_READY_CHECK_CONFIRM", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3AE*/ { "MSG_RAID_READY_CHECK_CONFIRM", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3AF*/ { "CMSG_VOICE_SESSION_ENABLE", STATUS_AUTHED, &WorldSession::HandleVoiceSettingsOpcode }, /*0x3AF*/ { "CMSG_VOICE_SESSION_ENABLE", STATUS_AUTHED, &WorldSession::HandleVoiceSessionEnableOpcode },
/*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3B1*/ { "SMSG_VOICE_PARENTAL_CONTROLS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3B1*/ { "SMSG_VOICE_PARENTAL_CONTROLS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3B2*/ { "CMSG_GM_WHISPER", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3B2*/ { "CMSG_GM_WHISPER", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -992,8 +992,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3C3*/ { "CMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3C3*/ { "CMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3C4*/ { "SMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3C4*/ { "SMSG_CHEAT_PLAYER_LOOKUP", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3C5*/ { "SMSG_KICK_REASON", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3C5*/ { "SMSG_KICK_REASON", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3C6*/ { "MSG_RAID_READY_CHECK_FINISHED", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckFinishOpcode}, /*0x3C6*/ { "MSG_RAID_READY_CHECK_FINISHED", STATUS_LOGGEDIN, &WorldSession::HandleRaidReadyCheckFinishedOpcode},
/*0x3C7*/ { "CMSG_COMPLAIN", STATUS_LOGGEDIN, &WorldSession::HandleReportSpamOpcode }, /*0x3C7*/ { "CMSG_COMPLAIN", STATUS_LOGGEDIN, &WorldSession::HandleComplainOpcode },
/*0x3C8*/ { "SMSG_COMPLAIN_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3C8*/ { "SMSG_COMPLAIN_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3C9*/ { "SMSG_FEATURE_SYSTEM_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3C9*/ { "SMSG_FEATURE_SYSTEM_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3CA*/ { "CMSG_GM_SHOW_COMPLAINTS", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3CA*/ { "CMSG_GM_SHOW_COMPLAINTS", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -1004,11 +1004,11 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3CF*/ { "CMSG_CHANNEL_UNSILENCE_ALL", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3CF*/ { "CMSG_CHANNEL_UNSILENCE_ALL", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3D0*/ { "CMSG_TARGET_CAST", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3D0*/ { "CMSG_TARGET_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3D1*/ { "CMSG_TARGET_SCRIPT_CAST", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3D1*/ { "CMSG_TARGET_SCRIPT_CAST", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3D2*/ { "CMSG_CHANNEL_DISPLAY_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelRosterQuery }, /*0x3D2*/ { "CMSG_CHANNEL_DISPLAY_LIST", STATUS_LOGGEDIN, &WorldSession::HandleChannelDisplayListQuery },
/*0x3D3*/ { "CMSG_SET_ACTIVE_VOICE_CHANNEL", STATUS_AUTHED, &WorldSession::HandleChannelVoiceChatQuery }, /*0x3D3*/ { "CMSG_SET_ACTIVE_VOICE_CHANNEL", STATUS_AUTHED, &WorldSession::HandleSetActiveVoiceChannel },
/*0x3D4*/ { "CMSG_GET_CHANNEL_MEMBER_COUNT", STATUS_LOGGEDIN, &WorldSession::HandleChannelInfoQuery }, /*0x3D4*/ { "CMSG_GET_CHANNEL_MEMBER_COUNT", STATUS_LOGGEDIN, &WorldSession::HandleGetChannelMemberCount },
/*0x3D5*/ { "SMSG_CHANNEL_MEMBER_COUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3D5*/ { "SMSG_CHANNEL_MEMBER_COUNT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3D6*/ { "CMSG_CHANNEL_VOICE_ON", STATUS_LOGGEDIN, &WorldSession::HandleChannelEnableVoiceOpcode }, /*0x3D6*/ { "CMSG_CHANNEL_VOICE_ON", STATUS_LOGGEDIN, &WorldSession::HandleChannelVoiceOnOpcode },
/*0x3D7*/ { "CMSG_CHANNEL_VOICE_OFF", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3D7*/ { "CMSG_CHANNEL_VOICE_OFF", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3D8*/ { "CMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3D8*/ { "CMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3D9*/ { "SMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3D9*/ { "SMSG_DEBUG_LIST_TARGETS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -1022,18 +1022,18 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3E1*/ { "SMSG_COMSAT_DISCONNECT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3E1*/ { "SMSG_COMSAT_DISCONNECT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3E2*/ { "SMSG_COMSAT_CONNECT_FAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3E2*/ { "SMSG_COMSAT_CONNECT_FAIL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3E3*/ { "SMSG_VOICE_CHAT_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3E3*/ { "SMSG_VOICE_CHAT_STATUS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3E4*/ { "CMSG_REPORT_PVP_AFK", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundReportAFK }, /*0x3E4*/ { "CMSG_REPORT_PVP_AFK", STATUS_LOGGEDIN, &WorldSession::HandleReportPvPAFK },
/*0x3E5*/ { "CMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3E5*/ { "CMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3E6*/ { "CMSG_GUILD_BANKER_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankQuery }, /*0x3E6*/ { "CMSG_GUILD_BANKER_ACTIVATE", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankerActivate },
/*0x3E7*/ { "CMSG_GUILD_BANK_QUERY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankTabColon }, /*0x3E7*/ { "CMSG_GUILD_BANK_QUERY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankQueryTab },
/*0x3E8*/ { "SMSG_GUILD_BANK_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3E8*/ { "SMSG_GUILD_BANK_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3E9*/ { "CMSG_GUILD_BANK_SWAP_ITEMS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDepositItem }, /*0x3E9*/ { "CMSG_GUILD_BANK_SWAP_ITEMS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankSwapItems },
/*0x3EA*/ { "CMSG_GUILD_BANK_BUY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankBuyTab }, /*0x3EA*/ { "CMSG_GUILD_BANK_BUY_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankBuyTab },
/*0x3EB*/ { "CMSG_GUILD_BANK_UPDATE_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankModifyTab }, /*0x3EB*/ { "CMSG_GUILD_BANK_UPDATE_TAB", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankUpdateTab },
/*0x3EC*/ { "CMSG_GUILD_BANK_DEPOSIT_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDeposit }, /*0x3EC*/ { "CMSG_GUILD_BANK_DEPOSIT_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankDepositMoney },
/*0x3ED*/ { "CMSG_GUILD_BANK_WITHDRAW_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankWithdraw }, /*0x3ED*/ { "CMSG_GUILD_BANK_WITHDRAW_MONEY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankWithdrawMoney },
/*0x3EE*/ { "MSG_GUILD_BANK_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankLog }, /*0x3EE*/ { "MSG_GUILD_BANK_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankLogQuery },
/*0x3EF*/ { "CMSG_SET_CHANNEL_WATCH", STATUS_LOGGEDIN, &WorldSession::HandleChannelJoinNotify }, /*0x3EF*/ { "CMSG_SET_CHANNEL_WATCH", STATUS_LOGGEDIN, &WorldSession::HandleSetChannelWatch },
/*0x3F0*/ { "SMSG_USERLIST_ADD", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3F0*/ { "SMSG_USERLIST_ADD", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3F1*/ { "SMSG_USERLIST_REMOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3F1*/ { "SMSG_USERLIST_REMOVE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3F2*/ { "SMSG_USERLIST_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3F2*/ { "SMSG_USERLIST_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -1047,9 +1047,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3FA*/ { "CMSG_GM_CHARACTER_RESTORE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3FA*/ { "CMSG_GM_CHARACTER_RESTORE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3FB*/ { "CMSG_GM_CHARACTER_SAVE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x3FB*/ { "CMSG_GM_CHARACTER_SAVE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x3FC*/ { "SMSG_VOICESESSION_FULL", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x3FC*/ { "SMSG_VOICESESSION_FULL", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x3FD*/ { "MSG_GUILD_PERMISSIONS", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankGetRights }, /*0x3FD*/ { "MSG_GUILD_PERMISSIONS", STATUS_LOGGEDIN, &WorldSession::HandleGuildPermissions },
/*0x3FE*/ { "MSG_GUILD_BANK_MONEY_WITHDRAWN", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankGetMoneyAmount }, /*0x3FE*/ { "MSG_GUILD_BANK_MONEY_WITHDRAWN", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankMoneyWithdrawn },
/*0x3FF*/ { "MSG_GUILD_EVENT_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildEventLogOpcode }, /*0x3FF*/ { "MSG_GUILD_EVENT_LOG_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleGuildEventLogQueryOpcode },
/*0x400*/ { "CMSG_MAELSTROM_RENAME_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x400*/ { "CMSG_MAELSTROM_RENAME_GUILD", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x401*/ { "CMSG_GET_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x401*/ { "CMSG_GET_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x402*/ { "SMSG_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x402*/ { "SMSG_MIRRORIMAGE_DATA", STATUS_NEVER, &WorldSession::Handle_ServerSide },
@ -1059,9 +1059,9 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x406*/ { "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x406*/ { "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x407*/ { "CMSG_KEEP_ALIVE", STATUS_NEVER, &WorldSession::Handle_EarlyProccess }, /*0x407*/ { "CMSG_KEEP_ALIVE", STATUS_NEVER, &WorldSession::Handle_EarlyProccess },
/*0x408*/ { "SMSG_RAID_READY_CHECK_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x408*/ { "SMSG_RAID_READY_CHECK_ERROR", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x409*/ { "CMSG_OPT_OUT_OF_LOOT", STATUS_AUTHED, &WorldSession::HandleGroupPassOnLootOpcode }, /*0x409*/ { "CMSG_OPT_OUT_OF_LOOT", STATUS_AUTHED, &WorldSession::HandleOptOutOfLootOpcode },
/*0x40A*/ { "MSG_QUERY_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankTabText }, /*0x40A*/ { "MSG_QUERY_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleQueryGuildBankTabText },
/*0x40B*/ { "CMSG_SET_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleGuildBankSetTabText }, /*0x40B*/ { "CMSG_SET_GUILD_BANK_TEXT", STATUS_LOGGEDIN, &WorldSession::HandleSetGuildBankTabText },
/*0x40C*/ { "CMSG_SET_GRANTABLE_LEVELS", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x40C*/ { "CMSG_SET_GRANTABLE_LEVELS", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x40D*/ { "CMSG_GRANT_LEVEL", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x40D*/ { "CMSG_GRANT_LEVEL", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x40E*/ { "CMSG_REFER_A_FRIEND", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x40E*/ { "CMSG_REFER_A_FRIEND", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -1070,12 +1070,12 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x411*/ { "CMSG_GROUPACTION_THROTTLED", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x411*/ { "CMSG_GROUPACTION_THROTTLED", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x412*/ { "SMSG_OVERRIDE_LIGHT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x412*/ { "SMSG_OVERRIDE_LIGHT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x413*/ { "SMSG_TOTEM_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x413*/ { "SMSG_TOTEM_CREATED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x414*/ { "CMSG_TOTEM_DESTROYED", STATUS_LOGGEDIN, &WorldSession::HandleTotemDestroy }, /*0x414*/ { "CMSG_TOTEM_DESTROYED", STATUS_LOGGEDIN, &WorldSession::HandleTotemDestroyed },
/*0x415*/ { "CMSG_EXPIRE_RAID_INSTANCE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x415*/ { "CMSG_EXPIRE_RAID_INSTANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x416*/ { "CMSG_NO_SPELL_VARIANCE", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x416*/ { "CMSG_NO_SPELL_VARIANCE", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x417*/ { "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverStatusQueryMultipleOpcode}, /*0x417*/ { "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY", STATUS_LOGGEDIN, &WorldSession::HandleQuestgiverStatusMultipleQuery},
/*0x418*/ { "SMSG_QUESTGIVER_STATUS_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x418*/ { "SMSG_QUESTGIVER_STATUS_MULTIPLE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x419*/ { "CMSG_SET_PLAYER_DECLINED_NAMES", STATUS_AUTHED, &WorldSession::HandleDeclinedPlayerNameOpcode }, /*0x419*/ { "CMSG_SET_PLAYER_DECLINED_NAMES", STATUS_AUTHED, &WorldSession::HandleSetPlayerDeclinedNames },
/*0x41A*/ { "SMSG_SET_PLAYER_DECLINED_NAMES_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x41A*/ { "SMSG_SET_PLAYER_DECLINED_NAMES_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x41B*/ { "CMSG_QUERY_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x41B*/ { "CMSG_QUERY_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x41C*/ { "CMSG_CLEAR_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x41C*/ { "CMSG_CLEAR_SERVER_BUCK_DATA", STATUS_NEVER, &WorldSession::Handle_NULL },
@ -1157,7 +1157,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x468*/ { "SMSG_ACHIEVEMENT_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x468*/ { "SMSG_ACHIEVEMENT_EARNED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x469*/ { "SMSG_DYNAMIC_DROP_ROLL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x469*/ { "SMSG_DYNAMIC_DROP_ROLL_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x46A*/ { "SMSG_CRITERIA_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x46A*/ { "SMSG_CRITERIA_UPDATE", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleInspectAchievements }, /*0x46B*/ { "CMSG_QUERY_INSPECT_ACHIEVEMENTS", STATUS_LOGGEDIN, &WorldSession::HandleQueryInspectAchievements },
/*0x46C*/ { "SMSG_RESPOND_INSPECT_ACHIEVEMENTS", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x46C*/ { "SMSG_RESPOND_INSPECT_ACHIEVEMENTS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleDismissControlledVehicle }, /*0x46D*/ { "CMSG_DISMISS_CONTROLLED_VEHICLE", STATUS_LOGGEDIN, &WorldSession::HandleDismissControlledVehicle },
/*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x46E*/ { "CMSG_COMPLETE_ACHIEVEMENT_CHEAT", STATUS_NEVER, &WorldSession::Handle_NULL },

View file

@ -1239,7 +1239,7 @@ enum SessionStatus
{ {
STATUS_AUTHED = 0, ///< Player authenticated STATUS_AUTHED = 0, ///< Player authenticated
STATUS_LOGGEDIN, ///< Player in game STATUS_LOGGEDIN, ///< Player in game
STATUS_TRANSFER_PENDING, ///< Player transferring to another map STATUS_TRANSFER, ///< Player transferring to another map
STATUS_NEVER ///< Opcode not accepted from client (deprecated or server side only) STATUS_NEVER ///< Opcode not accepted from client (deprecated or server side only)
}; };

View file

@ -1489,7 +1489,7 @@ void Player::BuildEnumData( QueryResult * result, WorldPacket * p_data )
const ItemPrototype * proto = objmgr.GetItemPrototype(item_id); const ItemPrototype * proto = objmgr.GetItemPrototype(item_id);
SpellItemEnchantmentEntry const *enchant = NULL; SpellItemEnchantmentEntry const *enchant = NULL;
for(uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot<=TEMP_ENCHANTMENT_SLOT; enchantSlot++) for(uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot <= TEMP_ENCHANTMENT_SLOT; ++enchantSlot)
{ {
uint32 enchantId = GetUInt32Value(visualbase+1+enchantSlot); uint32 enchantId = GetUInt32Value(visualbase+1+enchantSlot);
if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId)) if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId))
@ -3014,7 +3014,7 @@ bool Player::IsNeedCastPassiveSpellAtLearn(SpellEntry const* spellInfo) const
switch(spellInfo->Id) switch(spellInfo->Id)
{ {
// some spells not have stance data expacted cast at form change or present // some spells not have stance data expected cast at form change or present
case 5420: need_cast = (m_form == FORM_TREE); break; case 5420: need_cast = (m_form == FORM_TREE); break;
case 5419: need_cast = (m_form == FORM_TRAVEL); break; case 5419: need_cast = (m_form == FORM_TRAVEL); break;
case 7376: need_cast = (m_form == FORM_DEFENSIVESTANCE); break; case 7376: need_cast = (m_form == FORM_DEFENSIVESTANCE); break;
@ -3252,7 +3252,7 @@ void Player::RemoveSpellCooldown( uint32 spell_id, bool update /* = false */ )
if(update) if(update)
{ {
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8)); WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
data << uint32(spell_id); data << uint32(spell_id);
data << uint64(GetGUID()); data << uint64(GetGUID());
SendDirectMessage(&data); SendDirectMessage(&data);
@ -3275,7 +3275,7 @@ void Player::RemoveArenaSpellCooldowns()
entry->CategoryRecoveryTime <= 15 * MINUTE * IN_MILISECONDS ) entry->CategoryRecoveryTime <= 15 * MINUTE * IN_MILISECONDS )
{ {
// notify player // notify player
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8)); WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
data << uint32(itr->first); data << uint32(itr->first);
data << uint64(GetGUID()); data << uint64(GetGUID());
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);
@ -3291,7 +3291,7 @@ void Player::RemoveAllSpellCooldown()
{ {
for(SpellCooldowns::const_iterator itr = m_spellCooldowns.begin();itr != m_spellCooldowns.end(); ++itr) for(SpellCooldowns::const_iterator itr = m_spellCooldowns.begin();itr != m_spellCooldowns.end(); ++itr)
{ {
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8)); WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
data << uint32(itr->first); data << uint32(itr->first);
data << uint64(GetGUID()); data << uint64(GetGUID());
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);
@ -8692,7 +8692,7 @@ uint8 Player::_CanStoreItem_InSpecificSlot( uint8 bag, uint8 slot, ItemPosCountV
if(slot >= VANITYPET_SLOT_START && slot < VANITYPET_SLOT_END) if(slot >= VANITYPET_SLOT_START && slot < VANITYPET_SLOT_END)
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG; return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
// currencytoken case (disabled until proper implement) // currencytoken case
if(slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END && !(pProto->BagFamily & BAG_FAMILY_MASK_CURRENCY_TOKENS)) if(slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END && !(pProto->BagFamily & BAG_FAMILY_MASK_CURRENCY_TOKENS))
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG; return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
@ -9360,7 +9360,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
} }
// check free space for all items // check free space for all items
for (int k=0;k<count;k++) for (int k = 0; k < count; ++k)
{ {
Item *pItem = pItems[k]; Item *pItem = pItems[k];
@ -9391,7 +9391,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
{ {
bool b_found = false; bool b_found = false;
for(int t = KEYRING_SLOT_START; t < KEYRING_SLOT_END; t++) for(int t = KEYRING_SLOT_START; t < KEYRING_SLOT_END; ++t)
{ {
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_keys[t-KEYRING_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize()) if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_keys[t-KEYRING_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
@ -9403,7 +9403,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
} }
if (b_found) continue; if (b_found) continue;
for(int t = CURRENCYTOKEN_SLOT_START; t < CURRENCYTOKEN_SLOT_END; t++) for(int t = CURRENCYTOKEN_SLOT_START; t < CURRENCYTOKEN_SLOT_END; ++t)
{ {
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_tokens[t-CURRENCYTOKEN_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize()) if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_tokens[t-CURRENCYTOKEN_SLOT_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
@ -9415,7 +9415,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
} }
if (b_found) continue; if (b_found) continue;
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; t++) for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; ++t)
{ {
pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_slot_items[t-INVENTORY_SLOT_ITEM_START] + pItem->GetCount() <= pProto->GetMaxStackSize()) if( pItem2 && pItem2->GetEntry() == pItem->GetEntry() && inv_slot_items[t-INVENTORY_SLOT_ITEM_START] + pItem->GetCount() <= pProto->GetMaxStackSize())
@ -9427,7 +9427,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
} }
if (b_found) continue; if (b_found) continue;
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++) for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
{ {
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pBag ) if( pBag )
@ -9482,7 +9482,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
if (b_found) continue; if (b_found) continue;
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++) for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
{ {
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pBag ) if( pBag )
@ -9510,7 +9510,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
// search free slot // search free slot
bool b_found = false; bool b_found = false;
for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; t++) for(int t = INVENTORY_SLOT_ITEM_START; t < INVENTORY_SLOT_ITEM_END; ++t)
{ {
if( inv_slot_items[t-INVENTORY_SLOT_ITEM_START] == 0 ) if( inv_slot_items[t-INVENTORY_SLOT_ITEM_START] == 0 )
{ {
@ -9522,7 +9522,7 @@ uint8 Player::CanStoreItems( Item **pItems,int count) const
if (b_found) continue; if (b_found) continue;
// search free slot in bags // search free slot in bags
for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; t++) for(int t = INVENTORY_SLOT_BAG_START; !b_found && t < INVENTORY_SLOT_BAG_END; ++t)
{ {
pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t ); pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, t );
if( pBag ) if( pBag )
@ -9831,14 +9831,14 @@ uint8 Player::CanBankItem( uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *p
} }
else else
{ {
res = _CanStoreItem_InBag(bag,dest,pProto,count,false,false,pItem,NULL_BAG,slot); res = _CanStoreItem_InBag(bag, dest, pProto, count, false, false, pItem, NULL_BAG, slot);
if(res!=EQUIP_ERR_OK) if(res != EQUIP_ERR_OK)
res = _CanStoreItem_InBag(bag,dest,pProto,count,false,true,pItem,NULL_BAG,slot); res = _CanStoreItem_InBag(bag, dest, pProto, count, false, true, pItem, NULL_BAG, slot);
if(res!=EQUIP_ERR_OK) if(res != EQUIP_ERR_OK)
return res; return res;
if(count==0) if(count == 0)
return EQUIP_ERR_OK; return EQUIP_ERR_OK;
} }
} }
@ -9850,10 +9850,10 @@ uint8 Player::CanBankItem( uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *p
{ {
// in slots // in slots
res = _CanStoreItem_InInventorySlots(BANK_SLOT_ITEM_START,BANK_SLOT_ITEM_END,dest,pProto,count,true,pItem,bag,slot); res = _CanStoreItem_InInventorySlots(BANK_SLOT_ITEM_START,BANK_SLOT_ITEM_END,dest,pProto,count,true,pItem,bag,slot);
if(res!=EQUIP_ERR_OK) if(res != EQUIP_ERR_OK)
return res; return res;
if(count==0) if(count == 0)
return EQUIP_ERR_OK; return EQUIP_ERR_OK;
// in special bags // in special bags
@ -10123,7 +10123,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
if (!pItem2) if (!pItem2)
{ {
if (clone) if (clone)
pItem = pItem->CloneItem(count,this); pItem = pItem->CloneItem(count, this);
else else
pItem->SetCount(count); pItem->SetCount(count);
@ -10138,7 +10138,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
if (bag == INVENTORY_SLOT_BAG_0) if (bag == INVENTORY_SLOT_BAG_0)
{ {
m_items[slot] = pItem; m_items[slot] = pItem;
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), pItem->GetGUID() ); SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID() );
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() ); pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() ); pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
@ -10147,7 +10147,7 @@ Item* Player::_StoreItem( uint16 pos, Item *pItem, uint32 count, bool clone, boo
// need update known currency // need update known currency
if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END) if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
UpdateKnownCurrencies(pItem->GetEntry(),true); UpdateKnownCurrencies(pItem->GetEntry(), true);
if (IsInWorld() && update) if (IsInWorld() && update)
{ {
@ -10242,7 +10242,7 @@ Item* Player::EquipItem( uint16 pos, Item *pItem, bool update )
// item set bonuses applied only at equip and removed at unequip, and still active for broken items // item set bonuses applied only at equip and removed at unequip, and still active for broken items
if(pProto && pProto->ItemSet) if(pProto && pProto->ItemSet)
AddItemsSetItem(this,pItem); AddItemsSetItem(this, pItem);
_ApplyItemMods(pItem, slot, true); _ApplyItemMods(pItem, slot, true);
@ -10336,15 +10336,6 @@ void Player::QuickEquipItem( uint16 pos, Item *pItem)
void Player::SetVisibleItemSlot(uint8 slot, Item *pItem) void Player::SetVisibleItemSlot(uint8 slot, Item *pItem)
{ {
// PLAYER_VISIBLE_ITEM_i_CREATOR // Size: 2
// PLAYER_VISIBLE_ITEM_i_0 // Size: 12
// entry // Size: 1
// inspected enchantments // Size: 6
// ? // Size: 5
// PLAYER_VISIBLE_ITEM_i_PROPERTIES // Size: 1 (property,suffix factor)
// PLAYER_VISIBLE_ITEM_i_PAD // Size: 1
// // = 16
if(pItem) if(pItem)
{ {
SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetUInt64Value(ITEM_FIELD_CREATOR)); SetUInt64Value(PLAYER_VISIBLE_ITEM_1_CREATOR + (slot * MAX_VISIBLE_ITEM_OFFSET), pItem->GetUInt64Value(ITEM_FIELD_CREATOR));
@ -10386,14 +10377,14 @@ void Player::VisualizeItem( uint8 slot, Item *pItem)
sLog.outDebug( "STORAGE: EquipItem slot = %u, item = %u", slot, pItem->GetEntry()); sLog.outDebug( "STORAGE: EquipItem slot = %u, item = %u", slot, pItem->GetEntry());
m_items[slot] = pItem; m_items[slot] = pItem;
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), pItem->GetGUID() ); SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), pItem->GetGUID() );
pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() ); pItem->SetUInt64Value( ITEM_FIELD_CONTAINED, GetGUID() );
pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() ); pItem->SetUInt64Value( ITEM_FIELD_OWNER, GetGUID() );
pItem->SetSlot( slot ); pItem->SetSlot( slot );
pItem->SetContainer( NULL ); pItem->SetContainer( NULL );
if( slot < EQUIPMENT_SLOT_END ) if( slot < EQUIPMENT_SLOT_END )
SetVisibleItemSlot(slot,pItem); SetVisibleItemSlot(slot, pItem);
pItem->SetState(ITEM_CHANGED, this); pItem->SetState(ITEM_CHANGED, this);
} }
@ -10421,7 +10412,7 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
// item set bonuses applied only at equip and removed at unequip, and still active for broken items // item set bonuses applied only at equip and removed at unequip, and still active for broken items
if(pProto && pProto->ItemSet) if(pProto && pProto->ItemSet)
RemoveItemsSetItem(this,pProto); RemoveItemsSetItem(this, pProto);
_ApplyItemMods(pItem, slot, false); _ApplyItemMods(pItem, slot, false);
@ -10452,13 +10443,13 @@ void Player::RemoveItem( uint8 bag, uint8 slot, bool update )
} }
// need update known currency // need update known currency
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END) else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
UpdateKnownCurrencies(pItem->GetEntry(),false); UpdateKnownCurrencies(pItem->GetEntry(), false);
m_items[slot] = NULL; m_items[slot] = NULL;
SetUInt64Value((uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot*2)), 0); SetUInt64Value(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0);
if ( slot < EQUIPMENT_SLOT_END ) if ( slot < EQUIPMENT_SLOT_END )
SetVisibleItemSlot(slot,NULL); SetVisibleItemSlot(slot, NULL);
} }
else else
{ {
@ -10479,8 +10470,8 @@ void Player::MoveItemFromInventory(uint8 bag, uint8 slot, bool update)
{ {
if(Item* it = GetItemByPos(bag,slot)) if(Item* it = GetItemByPos(bag,slot))
{ {
ItemRemovedQuestCheck(it->GetEntry(),it->GetCount()); ItemRemovedQuestCheck(it->GetEntry(), it->GetCount());
RemoveItem( bag,slot,update); RemoveItem(bag, slot, update);
it->RemoveFromUpdateQueueOf(this); it->RemoveFromUpdateQueueOf(this);
if(it->IsInWorld()) if(it->IsInWorld())
{ {
@ -10494,13 +10485,13 @@ void Player::MoveItemFromInventory(uint8 bag, uint8 slot, bool update)
void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool update, bool in_characterInventoryDB) void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool update, bool in_characterInventoryDB)
{ {
// update quest counters // update quest counters
ItemAddedQuestCheck(pItem->GetEntry(),pItem->GetCount()); ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount());
// store item // store item
Item* pLastItem = StoreItem( dest, pItem, update); Item* pLastItem = StoreItem(dest, pItem, update);
// only set if not merged to existed stack (pItem can be deleted already but we can compare pointers any way) // only set if not merged to existed stack (pItem can be deleted already but we can compare pointers any way)
if(pLastItem==pItem) if(pLastItem == pItem)
{ {
// update owner for last item (this can be original item with wrong owner // update owner for last item (this can be original item with wrong owner
if(pLastItem->GetOwnerGUID() != GetGUID()) if(pLastItem->GetOwnerGUID() != GetGUID())
@ -10523,7 +10514,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
if (pItem->IsBag() && pItem->IsEquipped()) // this also prevent infinity loop if empty bag stored in bag==slot if (pItem->IsBag() && pItem->IsEquipped()) // this also prevent infinity loop if empty bag stored in bag==slot
{ {
for (int i = 0; i < MAX_BAG_SIZE; ++i) for (int i = 0; i < MAX_BAG_SIZE; ++i)
DestroyItem(slot,i,update); DestroyItem(slot, i, update);
} }
if(pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED)) if(pItem->HasFlag(ITEM_FIELD_FLAGS, ITEM_FLAGS_WRAPPED))
@ -10536,7 +10527,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
if( bag == INVENTORY_SLOT_BAG_0 ) if( bag == INVENTORY_SLOT_BAG_0 )
{ {
SetUInt64Value((uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot*2)), 0); SetUInt64Value(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0);
// equipment and equipped bags can have applied bonuses // equipment and equipped bags can have applied bonuses
if ( slot < INVENTORY_SLOT_BAG_END ) if ( slot < INVENTORY_SLOT_BAG_END )
@ -10545,7 +10536,7 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
// item set bonuses applied only at equip and removed at unequip, and still active for broken items // item set bonuses applied only at equip and removed at unequip, and still active for broken items
if(pProto && pProto->ItemSet) if(pProto && pProto->ItemSet)
RemoveItemsSetItem(this,pProto); RemoveItemsSetItem(this, pProto);
_ApplyItemMods(pItem, slot, false); _ApplyItemMods(pItem, slot, false);
} }
@ -10562,11 +10553,11 @@ void Player::DestroyItem( uint8 bag, uint8 slot, bool update )
UpdateExpertise(OFF_ATTACK); UpdateExpertise(OFF_ATTACK);
// equipment visual show // equipment visual show
SetVisibleItemSlot(slot,NULL); SetVisibleItemSlot(slot, NULL);
} }
// need update known currency // need update known currency
else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END) else if (slot >= CURRENCYTOKEN_SLOT_START && slot < CURRENCYTOKEN_SLOT_END)
UpdateKnownCurrencies(pItem->GetEntry(),false); UpdateKnownCurrencies(pItem->GetEntry(), false);
m_items[slot] = NULL; m_items[slot] = NULL;
} }
@ -10604,7 +10595,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
remcount += pItem->GetCount(); remcount += pItem->GetCount();
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
if (remcount >=count) if (remcount >= count)
return; return;
} }
else else
@ -10632,7 +10623,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
remcount += pItem->GetCount(); remcount += pItem->GetCount();
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
if (remcount >=count) if (remcount >= count)
return; return;
} }
else else
@ -10665,7 +10656,7 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
remcount += pItem->GetCount(); remcount += pItem->GetCount();
DestroyItem( i, j, update ); DestroyItem( i, j, update );
if (remcount >=count) if (remcount >= count)
return; return;
} }
else else
@ -10692,12 +10683,12 @@ void Player::DestroyItemCount( uint32 item, uint32 count, bool update, bool uneq
{ {
if (pItem->GetCount() + remcount <= count) if (pItem->GetCount() + remcount <= count)
{ {
if (!unequip_check || CanUnequipItem(INVENTORY_SLOT_BAG_0 << 8 | i,false) == EQUIP_ERR_OK ) if (!unequip_check || CanUnequipItem(INVENTORY_SLOT_BAG_0 << 8 | i, false) == EQUIP_ERR_OK )
{ {
remcount += pItem->GetCount(); remcount += pItem->GetCount();
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
if (remcount >=count) if (remcount >= count)
return; return;
} }
} }
@ -10722,12 +10713,12 @@ void Player::DestroyZoneLimitedItem( bool update, uint32 new_zone )
// in inventory // in inventory
for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i) for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i)
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i )) if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone)) if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
for(int i = KEYRING_SLOT_START; i < QUESTBAG_SLOT_END; ++i) for(int i = KEYRING_SLOT_START; i < QUESTBAG_SLOT_END; ++i)
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i )) if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone)) if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
// in inventory bags // in inventory bags
@ -10735,13 +10726,13 @@ void Player::DestroyZoneLimitedItem( bool update, uint32 new_zone )
if (Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i )) if (Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
for(uint32 j = 0; j < pBag->GetBagSize(); ++j) for(uint32 j = 0; j < pBag->GetBagSize(); ++j)
if (Item* pItem = pBag->GetItemByPos(j)) if (Item* pItem = pBag->GetItemByPos(j))
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone)) if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
DestroyItem( i, j, update); DestroyItem(i, j, update);
// in equipment and bag list // in equipment and bag list
for(int i = EQUIPMENT_SLOT_START; i < INVENTORY_SLOT_BAG_END; ++i) for(int i = EQUIPMENT_SLOT_START; i < INVENTORY_SLOT_BAG_END; ++i)
if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i )) if (Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(),new_zone)) if (pItem->IsLimitedToAnotherMapOrZone(GetMapId(), new_zone))
DestroyItem( INVENTORY_SLOT_BAG_0, i, update); DestroyItem( INVENTORY_SLOT_BAG_0, i, update);
} }
@ -10781,7 +10772,7 @@ void Player::DestroyItemCount( Item* pItem, uint32 &count, bool update )
if( pItem->GetCount() <= count ) if( pItem->GetCount() <= count )
{ {
count-= pItem->GetCount(); count -= pItem->GetCount();
DestroyItem( pItem->GetBagSlot(),pItem->GetSlot(), update); DestroyItem( pItem->GetBagSlot(),pItem->GetSlot(), update);
} }
@ -11020,7 +11011,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
} }
RemoveItem(srcbag, srcslot, true); RemoveItem(srcbag, srcslot, true);
EquipItem( dest, pSrcItem, true); EquipItem(dest, pSrcItem, true);
AutoUnequipOffhandIfNeed(); AutoUnequipOffhandIfNeed();
} }
@ -11150,7 +11141,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
ItemPrototype const* bagItemProto = bagItem->GetProto(); ItemPrototype const* bagItemProto = bagItem->GetProto();
if (!bagItemProto || !ItemCanGoIntoBag(bagItemProto, emotyProto)) if (!bagItemProto || !ItemCanGoIntoBag(bagItemProto, emotyProto))
{ {
// one from items not go to empry target bag // one from items not go to empty target bag
SendEquipError( EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG, pSrcItem, pDstItem ); SendEquipError( EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG, pSrcItem, pDstItem );
return; return;
} }
@ -11168,7 +11159,7 @@ void Player::SwapItem( uint16 src, uint16 dst )
// Items swap // Items swap
count = 0; // will pos in new bag count = 0; // will pos in new bag
for(int i=0; i< fullBag->GetBagSize(); ++i) for(int i = 0; i< fullBag->GetBagSize(); ++i)
{ {
Item *bagItem = fullBag->GetItemByPos(i); Item *bagItem = fullBag->GetItemByPos(i);
if (!bagItem) if (!bagItem)
@ -11247,7 +11238,7 @@ void Player::AddItemToBuyBackSlot( Item *pItem )
uint32 etime = uint32(base - m_logintime + (30 * 3600)); uint32 etime = uint32(base - m_logintime + (30 * 3600));
uint32 eslot = slot - BUYBACK_SLOT_START; uint32 eslot = slot - BUYBACK_SLOT_START;
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + eslot * 2, pItem->GetGUID() ); SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), pItem->GetGUID() );
ItemPrototype const *pProto = pItem->GetProto(); ItemPrototype const *pProto = pItem->GetProto();
if( pProto ) if( pProto )
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() ); SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() );
@ -11256,7 +11247,7 @@ void Player::AddItemToBuyBackSlot( Item *pItem )
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, (uint32)etime ); SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, (uint32)etime );
// move to next (for non filled list is move most optimized choice) // move to next (for non filled list is move most optimized choice)
if(m_currentBuybackSlot < BUYBACK_SLOT_END-1) if(m_currentBuybackSlot < BUYBACK_SLOT_END - 1)
++m_currentBuybackSlot; ++m_currentBuybackSlot;
} }
} }
@ -11284,7 +11275,7 @@ void Player::RemoveItemFromBuyBackSlot( uint32 slot, bool del )
m_items[slot] = NULL; m_items[slot] = NULL;
uint32 eslot = slot - BUYBACK_SLOT_START; uint32 eslot = slot - BUYBACK_SLOT_START;
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + eslot * 2, 0 ); SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), 0 );
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 ); SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 );
SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0 ); SetUInt32Value( PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0 );
@ -11296,7 +11287,7 @@ void Player::RemoveItemFromBuyBackSlot( uint32 slot, bool del )
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 ) void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 )
{ {
sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)",msg); sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)", msg);
WorldPacket data( SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : 18) ); WorldPacket data( SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : 18) );
data << uint8(msg); data << uint8(msg);
@ -11379,9 +11370,9 @@ void Player::UpdateItemDuration(uint32 time, bool realtimeonly)
if(m_itemDuration.empty()) if(m_itemDuration.empty())
return; return;
sLog.outDebug("Player::UpdateItemDuration(%u,%u)", time,realtimeonly); sLog.outDebug("Player::UpdateItemDuration(%u,%u)", time, realtimeonly);
for(ItemDurationList::const_iterator itr = m_itemDuration.begin();itr != m_itemDuration.end(); ) for(ItemDurationList::const_iterator itr = m_itemDuration.begin(); itr != m_itemDuration.end(); )
{ {
Item* item = *itr; Item* item = *itr;
++itr; // current element can be erased in UpdateDuration ++itr; // current element can be erased in UpdateDuration
@ -11396,14 +11387,14 @@ void Player::UpdateEnchantTime(uint32 time)
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next) for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next)
{ {
assert(itr->item); assert(itr->item);
next=itr; next = itr;
if(!itr->item->GetEnchantmentId(itr->slot)) if(!itr->item->GetEnchantmentId(itr->slot))
{ {
next = m_enchantDuration.erase(itr); next = m_enchantDuration.erase(itr);
} }
else if(itr->leftduration <= time) else if(itr->leftduration <= time)
{ {
ApplyEnchantment(itr->item,itr->slot,false,false); ApplyEnchantment(itr->item, itr->slot, false, false);
itr->item->ClearEnchantment(itr->slot); itr->item->ClearEnchantment(itr->slot);
next = m_enchantDuration.erase(itr); next = m_enchantDuration.erase(itr);
} }
@ -11417,25 +11408,25 @@ void Player::UpdateEnchantTime(uint32 time)
void Player::AddEnchantmentDurations(Item *item) void Player::AddEnchantmentDurations(Item *item)
{ {
for(int x=0;x<MAX_ENCHANTMENT_SLOT;++x) for(int x = 0; x < MAX_ENCHANTMENT_SLOT; ++x)
{ {
if(!item->GetEnchantmentId(EnchantmentSlot(x))) if(!item->GetEnchantmentId(EnchantmentSlot(x)))
continue; continue;
uint32 duration = item->GetEnchantmentDuration(EnchantmentSlot(x)); uint32 duration = item->GetEnchantmentDuration(EnchantmentSlot(x));
if( duration > 0 ) if( duration > 0 )
AddEnchantmentDuration(item,EnchantmentSlot(x),duration); AddEnchantmentDuration(item, EnchantmentSlot(x), duration);
} }
} }
void Player::RemoveEnchantmentDurations(Item *item) void Player::RemoveEnchantmentDurations(Item *item)
{ {
for(EnchantDurationList::iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();) for(EnchantDurationList::iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end();)
{ {
if(itr->item == item) if(itr->item == item)
{ {
// save duration in item // save duration in item
item->SetEnchantmentDuration(EnchantmentSlot(itr->slot),itr->leftduration); item->SetEnchantmentDuration(EnchantmentSlot(itr->slot), itr->leftduration);
itr = m_enchantDuration.erase(itr); itr = m_enchantDuration.erase(itr);
} }
else else
@ -11446,15 +11437,15 @@ void Player::RemoveEnchantmentDurations(Item *item)
void Player::RemoveAllEnchantments(EnchantmentSlot slot) void Player::RemoveAllEnchantments(EnchantmentSlot slot)
{ {
// remove enchantments from equipped items first to clean up the m_enchantDuration list // remove enchantments from equipped items first to clean up the m_enchantDuration list
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next) for(EnchantDurationList::iterator itr = m_enchantDuration.begin(), next; itr != m_enchantDuration.end(); itr = next)
{ {
next = itr; next = itr;
if(itr->slot==slot) if(itr->slot == slot)
{ {
if(itr->item && itr->item->GetEnchantmentId(slot)) if(itr->item && itr->item->GetEnchantmentId(slot))
{ {
// remove from stats // remove from stats
ApplyEnchantment(itr->item,slot,false,false); ApplyEnchantment(itr->item, slot, false, false);
// remove visual // remove visual
itr->item->ClearEnchantment(slot); itr->item->ClearEnchantment(slot);
} }
@ -11500,19 +11491,19 @@ void Player::AddEnchantmentDuration(Item *item,EnchantmentSlot slot,uint32 durat
if(slot >= MAX_ENCHANTMENT_SLOT) if(slot >= MAX_ENCHANTMENT_SLOT)
return; return;
for(EnchantDurationList::iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();++itr) for(EnchantDurationList::iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end(); ++itr)
{ {
if(itr->item == item && itr->slot == slot) if(itr->item == item && itr->slot == slot)
{ {
itr->item->SetEnchantmentDuration(itr->slot,itr->leftduration); itr->item->SetEnchantmentDuration(itr->slot, itr->leftduration);
m_enchantDuration.erase(itr); m_enchantDuration.erase(itr);
break; break;
} }
} }
if(item && duration > 0 ) if(item && duration > 0 )
{ {
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), item->GetGUID(),slot,uint32(duration/1000)); GetSession()->SendItemEnchantTimeUpdate(GetGUID(), item->GetGUID(), slot, uint32(duration/1000));
m_enchantDuration.push_back(EnchantDuration(item,slot,duration)); m_enchantDuration.push_back(EnchantDuration(item, slot, duration));
} }
} }
@ -11522,7 +11513,7 @@ void Player::ApplyEnchantment(Item *item,bool apply)
ApplyEnchantment(item, EnchantmentSlot(slot), apply); ApplyEnchantment(item, EnchantmentSlot(slot), apply);
} }
void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool apply_dur, bool ignore_condition) void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool apply_dur, bool ignore_condition)
{ {
if(!item) if(!item)
return; return;
@ -11546,7 +11537,7 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
if (!item->IsBroken()) if (!item->IsBroken())
{ {
for (int s=0; s<3; s++) for (int s = 0; s < 3; ++s)
{ {
uint32 enchant_display_type = pEnchant->type[s]; uint32 enchant_display_type = pEnchant->type[s];
uint32 enchant_amount = pEnchant->amount[s]; uint32 enchant_amount = pEnchant->amount[s];
@ -11580,11 +11571,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
if (item_rand) if (item_rand)
{ {
// Search enchant_amount // Search enchant_amount
for (int k=0; k<3; k++) for (int k = 0; k < 3; ++k)
{ {
if(item_rand->enchant_id[k] == enchant_id) if(item_rand->enchant_id[k] == enchant_id)
{ {
basepoints = int32((item_rand->prefix[k]*item->GetItemSuffixFactor()) / 10000 ); basepoints = int32((item_rand->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
break; break;
} }
} }
@ -11592,12 +11583,12 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
} }
// Cast custom spell vs all equal basepoints getted from enchant_amount // Cast custom spell vs all equal basepoints getted from enchant_amount
if (basepoints) if (basepoints)
CastCustomSpell(this,enchant_spell_id,&basepoints,&basepoints,&basepoints,true,item); CastCustomSpell(this, enchant_spell_id, &basepoints, &basepoints, &basepoints, true, item);
else else
CastSpell(this,enchant_spell_id,true,item); CastSpell(this, enchant_spell_id, true, item);
} }
else else
RemoveAurasDueToItemSpell(item,enchant_spell_id); RemoveAurasDueToItemSpell(item, enchant_spell_id);
} }
break; break;
case ITEM_ENCHANTMENT_TYPE_RESISTANCE: case ITEM_ENCHANTMENT_TYPE_RESISTANCE:
@ -11606,11 +11597,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
ItemRandomSuffixEntry const *item_rand = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId())); ItemRandomSuffixEntry const *item_rand = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
if(item_rand) if(item_rand)
{ {
for (int k=0; k<3; k++) for (int k = 0; k < 3; ++k)
{ {
if(item_rand->enchant_id[k] == enchant_id) if(item_rand->enchant_id[k] == enchant_id)
{ {
enchant_amount = uint32((item_rand->prefix[k]*item->GetItemSuffixFactor()) / 10000 ); enchant_amount = uint32((item_rand->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
break; break;
} }
} }
@ -11626,11 +11617,11 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
ItemRandomSuffixEntry const *item_rand_suffix = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId())); ItemRandomSuffixEntry const *item_rand_suffix = sItemRandomSuffixStore.LookupEntry(abs(item->GetItemRandomPropertyId()));
if(item_rand_suffix) if(item_rand_suffix)
{ {
for (int k=0; k<3; k++) for (int k = 0; k < 3; ++k)
{ {
if(item_rand_suffix->enchant_id[k] == enchant_id) if(item_rand_suffix->enchant_id[k] == enchant_id)
{ {
enchant_amount = uint32((item_rand_suffix->prefix[k]*item->GetItemSuffixFactor()) / 10000 ); enchant_amount = uint32((item_rand_suffix->prefix[k] * item->GetItemSuffixFactor()) / 10000 );
break; break;
} }
} }
@ -11827,12 +11818,12 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
float addValue = 0.0f; float addValue = 0.0f;
if(item->GetSlot() == EQUIPMENT_SLOT_MAINHAND) if(item->GetSlot() == EQUIPMENT_SLOT_MAINHAND)
{ {
addValue = float(enchant_amount * item->GetProto()->Delay/1000.0f); addValue = float(enchant_amount * item->GetProto()->Delay / 1000.0f);
HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, addValue, apply); HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_VALUE, addValue, apply);
} }
else if(item->GetSlot() == EQUIPMENT_SLOT_OFFHAND ) else if(item->GetSlot() == EQUIPMENT_SLOT_OFFHAND )
{ {
addValue = float(enchant_amount * item->GetProto()->Delay/1000.0f); addValue = float(enchant_amount * item->GetProto()->Delay / 1000.0f);
HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, addValue, apply); HandleStatModifier(UNIT_MOD_DAMAGE_OFFHAND, TOTAL_VALUE, addValue, apply);
} }
} }
@ -11865,27 +11856,27 @@ void Player::ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool a
// set duration // set duration
uint32 duration = item->GetEnchantmentDuration(slot); uint32 duration = item->GetEnchantmentDuration(slot);
if(duration > 0) if(duration > 0)
AddEnchantmentDuration(item,slot,duration); AddEnchantmentDuration(item, slot, duration);
} }
else else
{ {
// duration == 0 will remove EnchantDuration // duration == 0 will remove EnchantDuration
AddEnchantmentDuration(item,slot,0); AddEnchantmentDuration(item, slot, 0);
} }
} }
} }
void Player::SendEnchantmentDurations() void Player::SendEnchantmentDurations()
{ {
for(EnchantDurationList::const_iterator itr = m_enchantDuration.begin();itr != m_enchantDuration.end();++itr) for(EnchantDurationList::const_iterator itr = m_enchantDuration.begin(); itr != m_enchantDuration.end(); ++itr)
{ {
GetSession()->SendItemEnchantTimeUpdate(GetGUID(), itr->item->GetGUID(),itr->slot,uint32(itr->leftduration)/1000); GetSession()->SendItemEnchantTimeUpdate(GetGUID(), itr->item->GetGUID(), itr->slot, uint32(itr->leftduration) / 1000);
} }
} }
void Player::SendItemDurations() void Player::SendItemDurations()
{ {
for(ItemDurationList::const_iterator itr = m_itemDuration.begin();itr != m_itemDuration.end();++itr) for(ItemDurationList::const_iterator itr = m_itemDuration.begin(); itr != m_itemDuration.end(); ++itr)
{ {
(*itr)->SendTimeUpdate(this); (*itr)->SendTimeUpdate(this);
} }
@ -11898,18 +11889,18 @@ void Player::SendNewItem(Item *item, uint32 count, bool received, bool created,
// last check 2.0.10 // last check 2.0.10
WorldPacket data( SMSG_ITEM_PUSH_RESULT, (8+4+4+4+1+4+4+4+4+4) ); WorldPacket data( SMSG_ITEM_PUSH_RESULT, (8+4+4+4+1+4+4+4+4+4) );
data << GetGUID(); // player GUID data << uint64(GetGUID()); // player GUID
data << uint32(received); // 0=looted, 1=from npc data << uint32(received); // 0=looted, 1=from npc
data << uint32(created); // 0=received, 1=created data << uint32(created); // 0=received, 1=created
data << uint32(1); // always 0x01 (probably meant to be count of listed items) data << uint32(1); // always 0x01 (probably meant to be count of listed items)
data << (uint8)item->GetBagSlot(); // bagslot data << uint8(item->GetBagSlot()); // bagslot
// item slot, but when added to stack: 0xFFFFFFFF // item slot, but when added to stack: 0xFFFFFFFF
data << (uint32) ((item->GetCount()==count) ? item->GetSlot() : -1); data << uint32((item->GetCount() == count) ? item->GetSlot() : -1);
data << uint32(item->GetEntry()); // item id data << uint32(item->GetEntry()); // item id
data << uint32(item->GetItemSuffixFactor()); // SuffixFactor data << uint32(item->GetItemSuffixFactor()); // SuffixFactor
data << uint32(item->GetItemRandomPropertyId()); // random item property id data << uint32(item->GetItemRandomPropertyId()); // random item property id
data << uint32(count); // count of items data << uint32(count); // count of items
data << GetItemCount(item->GetEntry()); // count of items in inventory data << uint32(GetItemCount(item->GetEntry())); // count of items in inventory
if (broadcast && GetGroup()) if (broadcast && GetGroup())
GetGroup()->BroadcastPacket(&data, true); GetGroup()->BroadcastPacket(&data, true);
@ -11928,7 +11919,7 @@ void Player::PrepareQuestMenu( uint64 guid )
QuestRelations* pObjectQIR; QuestRelations* pObjectQIR;
// pets also can have quests // pets also can have quests
Creature *pCreature = ObjectAccessor::GetCreatureOrPetOrVehicle(*this,guid); Creature *pCreature = ObjectAccessor::GetCreatureOrPetOrVehicle(*this, guid);
if( pCreature ) if( pCreature )
{ {
pObject = (Object*)pCreature; pObject = (Object*)pCreature;
@ -11994,10 +11985,11 @@ void Player::SendPreparedQuest( uint64 guid )
// Auto open -- maybe also should verify there is no greeting // Auto open -- maybe also should verify there is no greeting
uint32 quest_id = qmi0.m_qId; uint32 quest_id = qmi0.m_qId;
Quest const* pQuest = objmgr.GetQuestTemplate(quest_id); Quest const* pQuest = objmgr.GetQuestTemplate(quest_id);
if ( pQuest ) if ( pQuest )
{ {
if( status == DIALOG_STATUS_REWARD_REP && !GetQuestRewardStatus( quest_id ) ) if( status == DIALOG_STATUS_REWARD_REP && !GetQuestRewardStatus( quest_id ) )
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanRewardQuest(pQuest,false), true ); PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, CanRewardQuest(pQuest, false), true );
else if( status == DIALOG_STATUS_INCOMPLETE ) else if( status == DIALOG_STATUS_INCOMPLETE )
PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true ); PlayerTalkClass->SendQuestGiverRequestItems( pQuest, guid, false, true );
// Send completable on repeatable quest if player don't have quest // Send completable on repeatable quest if player don't have quest
@ -13905,7 +13897,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
if(!LoadValues( fields[2].GetString())) if(!LoadValues( fields[2].GetString()))
{ {
sLog.outError("Player #%d have broken data in `data` field. Can't be loaded.",GUID_LOPART(guid)); sLog.outError("Player #%d have broken data in `data` field. Can't be loaded.", GUID_LOPART(guid));
delete result; delete result;
return false; return false;
} }
@ -13916,8 +13908,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
// cleanup inventory related item value fields (its will be filled correctly in _LoadInventory) // cleanup inventory related item value fields (its will be filled correctly in _LoadInventory)
for(uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot) for(uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
{ {
SetUInt64Value( (uint16)(PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2) ), 0 ); SetUInt64Value( PLAYER_FIELD_INV_SLOT_HEAD + (slot * 2), 0 );
SetVisibleItemSlot(slot,NULL); SetVisibleItemSlot(slot, NULL);
if (m_items[slot]) if (m_items[slot])
{ {
@ -14295,7 +14287,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
if(uint32 curTitle = GetUInt32Value(PLAYER_CHOSEN_TITLE)) if(uint32 curTitle = GetUInt32Value(PLAYER_CHOSEN_TITLE))
{ {
if(!HasTitle(curTitle)) if(!HasTitle(curTitle))
SetUInt32Value(PLAYER_CHOSEN_TITLE,0); SetUInt32Value(PLAYER_CHOSEN_TITLE, 0);
} }
// Not finish taxi flight path // Not finish taxi flight path
@ -14934,18 +14926,18 @@ void Player::_LoadQuestStatus(QueryResult *result)
// add to quest log // add to quest log
if( slot < MAX_QUEST_LOG_SIZE && if( slot < MAX_QUEST_LOG_SIZE &&
( questStatusData.m_status==QUEST_STATUS_INCOMPLETE || ( questStatusData.m_status == QUEST_STATUS_INCOMPLETE ||
questStatusData.m_status==QUEST_STATUS_COMPLETE && questStatusData.m_status == QUEST_STATUS_COMPLETE &&
(!questStatusData.m_rewarded || pQuest->IsDaily()) ) ) (!questStatusData.m_rewarded || pQuest->IsDaily()) ) )
{ {
SetQuestSlot(slot,quest_id,quest_time); SetQuestSlot(slot, quest_id, quest_time);
if(questStatusData.m_status == QUEST_STATUS_COMPLETE) if(questStatusData.m_status == QUEST_STATUS_COMPLETE)
SetQuestSlotState(slot,QUEST_STATE_COMPLETE); SetQuestSlotState(slot, QUEST_STATE_COMPLETE);
for(uint8 idx = 0; idx < QUEST_OBJECTIVES_COUNT; ++idx) for(uint8 idx = 0; idx < QUEST_OBJECTIVES_COUNT; ++idx)
if(questStatusData.m_creatureOrGOcount[idx]) if(questStatusData.m_creatureOrGOcount[idx])
SetQuestSlotCounter(slot,idx,questStatusData.m_creatureOrGOcount[idx]); SetQuestSlotCounter(slot, idx, questStatusData.m_creatureOrGOcount[idx]);
++slot; ++slot;
} }
@ -14963,7 +14955,7 @@ void Player::_LoadQuestStatus(QueryResult *result)
} }
if(pQuest->GetBonusTalents()) if(pQuest->GetBonusTalents())
m_questRewardTalentCount+=pQuest->GetBonusTalents(); m_questRewardTalentCount += pQuest->GetBonusTalents();
} }
sLog.outDebug("Quest status is {%u} for quest {%u} for player (GUID: %u)", questStatusData.m_status, quest_id, GetGUIDLow()); sLog.outDebug("Quest status is {%u} for quest {%u} for player (GUID: %u)", questStatusData.m_status, quest_id, GetGUIDLow());
@ -14976,7 +14968,7 @@ void Player::_LoadQuestStatus(QueryResult *result)
// clear quest log tail // clear quest log tail
for ( uint16 i = slot; i < MAX_QUEST_LOG_SIZE; ++i ) for ( uint16 i = slot; i < MAX_QUEST_LOG_SIZE; ++i )
SetQuestSlot(i,0); SetQuestSlot(i, 0);
} }
void Player::_LoadDailyQuestStatus(QueryResult *result) void Player::_LoadDailyQuestStatus(QueryResult *result)
@ -15211,7 +15203,7 @@ void Player::SendRaidInfo()
} }
} }
} }
data.put<uint32>(p_counter,counter); data.put<uint32>(p_counter, counter);
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);
} }
@ -16403,7 +16395,7 @@ void Player::PetSpellInitialize()
CharmInfo *charmInfo = pet->GetCharmInfo(); CharmInfo *charmInfo = pet->GetCharmInfo();
WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+10*4); WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
data << uint64(pet->GetGUID()); data << uint64(pet->GetGUID());
data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents) data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents)
data << uint32(0); data << uint32(0);
@ -16477,21 +16469,16 @@ void Player::PossessSpellInitialize()
return; return;
} }
uint8 addlist = 0; WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
WorldPacket data(SMSG_PET_SPELLS, 16+40+1+4*addlist+25);// first line + actionbar + spellcount + spells + last adds
//16
data << uint64(charm->GetGUID()); data << uint64(charm->GetGUID());
data << uint32(0x00000000); data << uint32(0);
data << uint32(0); data << uint32(0);
data << uint32(0); data << uint32(0);
charmInfo->BuildActionBar(&data); //40 charmInfo->BuildActionBar(&data);
data << uint8(addlist); //1 data << uint8(0); // spells count
data << uint8(0); // cooldowns count
uint8 count = 0;
data << uint8(count); // cooldowns count
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);
} }
@ -16526,20 +16513,19 @@ void Player::CharmSpellInitialize()
} }
} }
WorldPacket data(SMSG_PET_SPELLS, 16+40+1+4*addlist+25);// first line + actionbar + spellcount + spells + last adds WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+4*addlist+1);
data << uint64(charm->GetGUID()); data << uint64(charm->GetGUID());
data << uint32(0x00000000);
data << uint32(0); data << uint32(0);
data << uint32(0);
if(charm->GetTypeId() != TYPEID_PLAYER) if(charm->GetTypeId() != TYPEID_PLAYER)
data << uint8(charmInfo->GetReactState()) << uint8(charmInfo->GetCommandState()); data << uint8(charmInfo->GetReactState()) << uint8(charmInfo->GetCommandState()) << uint16(0);
else else
data << uint8(0) << uint8(0); data << uint8(0) << uint8(0) << uint16(0);
data << uint16(0);
charmInfo->BuildActionBar(&data); //40 charmInfo->BuildActionBar(&data);
data << uint8(addlist); //1 data << uint8(addlist);
if(addlist) if(addlist)
{ {
@ -16554,8 +16540,7 @@ void Player::CharmSpellInitialize()
} }
} }
uint8 count = 0; data << uint8(0); // cooldowns count
data << uint8(count); // cooldowns count
GetSession()->SendPacket(&data); GetSession()->SendPacket(&data);
} }
@ -17021,8 +17006,8 @@ void Player::ProhibitSpellScholl(SpellSchoolMask idSchoolMask, uint32 unTimeMs )
if((idSchoolMask & GetSpellSchoolMask(spellInfo)) && GetSpellCooldownDelay(unSpellId) < unTimeMs ) if((idSchoolMask & GetSpellSchoolMask(spellInfo)) && GetSpellCooldownDelay(unSpellId) < unTimeMs )
{ {
data << unSpellId; data << uint32(unSpellId);
data << unTimeMs; // in m.secs data << uint32(unTimeMs); // in m.secs
AddSpellCooldown(unSpellId, 0, curTime + unTimeMs/IN_MILISECONDS); AddSpellCooldown(unSpellId, 0, curTime + unTimeMs/IN_MILISECONDS);
} }
} }
@ -19299,7 +19284,7 @@ void Player::EnterVehicle(Vehicle *vehicle)
vehicle->setFaction(getFaction()); vehicle->setFaction(getFaction());
SetCharm(vehicle); // charm SetCharm(vehicle); // charm
SetFarSightGUID(vehicle->GetGUID()); // set view SetFarSightGUID(vehicle->GetGUID()); // set view
SetClientControl(vehicle, 1); // redirect controls to vehicle SetClientControl(vehicle, 1); // redirect controls to vehicle
@ -19330,8 +19315,8 @@ void Player::EnterVehicle(Vehicle *vehicle)
data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1); data.Initialize(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
data << uint64(vehicle->GetGUID()); data << uint64(vehicle->GetGUID());
data << uint32(0x00000000); data << uint32(0);
data << uint32(0x00000000); data << uint32(0);
data << uint32(0x00000101); data << uint32(0x00000101);
for(uint32 i = 0; i < 10; ++i) for(uint32 i = 0; i < 10; ++i)
@ -19395,16 +19380,16 @@ bool Player::HasTitle(uint32 bitIndex)
if (bitIndex > 128) if (bitIndex > 128)
return false; return false;
uint32 fieldIndexOffset = bitIndex/32; uint32 fieldIndexOffset = bitIndex / 32;
uint32 flag = 1 << (bitIndex%32); uint32 flag = 1 << (bitIndex % 32);
return HasFlag(PLAYER__FIELD_KNOWN_TITLES+fieldIndexOffset, flag); return HasFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
} }
void Player::SetTitle(CharTitlesEntry const* title) void Player::SetTitle(CharTitlesEntry const* title)
{ {
uint32 fieldIndexOffset = title->bit_index/32; uint32 fieldIndexOffset = title->bit_index / 32;
uint32 flag = 1 << (title->bit_index%32); uint32 flag = 1 << (title->bit_index % 32);
SetFlag(PLAYER__FIELD_KNOWN_TITLES+fieldIndexOffset, flag); SetFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
} }
void Player::ConvertRune(uint8 index, uint8 newType) void Player::ConvertRune(uint8 index, uint8 newType)

View file

@ -147,6 +147,7 @@ struct ActionButton
enum ActionButtonType enum ActionButtonType
{ {
ACTION_BUTTON_SPELL = 0, ACTION_BUTTON_SPELL = 0,
ACTION_BUTTON_EQSET = 32,
ACTION_BUTTON_MACRO = 64, ACTION_BUTTON_MACRO = 64,
ACTION_BUTTON_CMACRO= 65, ACTION_BUTTON_CMACRO= 65,
ACTION_BUTTON_ITEM = 128 ACTION_BUTTON_ITEM = 128
@ -287,14 +288,32 @@ struct EnchantDuration
typedef std::list<EnchantDuration> EnchantDurationList; typedef std::list<EnchantDuration> EnchantDurationList;
typedef std::list<Item*> ItemDurationList; typedef std::list<Item*> ItemDurationList;
enum LfgType
{
LFG_TYPE_NONE = 0,
LFG_TYPE_DUNGEON = 1,
LFG_TYPE_RAID = 2,
LFG_TYPE_QUEST = 3,
LFG_TYPE_ZONE = 4,
LFG_TYPE_HEROIC_DUNGEON = 5
};
enum LfgRoles
{
LEADER = 1,
TANK = 2,
HEALER = 4,
DAMAGE = 8
};
struct LookingForGroupSlot struct LookingForGroupSlot
{ {
LookingForGroupSlot() : entry(0), type(0) {} LookingForGroupSlot() : entry(0), type(0) {}
bool Empty() const { return !entry && !type; } bool Empty() const { return !entry && !type; }
void Clear() { entry = 0; type = 0; } void Clear() { entry = 0; type = 0; }
void Set(uint32 _entry, uint32 _type ) { entry = _entry; type = _type; } void Set(uint32 _entry, uint32 _type ) { entry = _entry; type = _type; }
bool Is(uint32 _entry, uint32 _type) const { return entry==_entry && type==_type; } bool Is(uint32 _entry, uint32 _type) const { return entry == _entry && type == _type; }
bool canAutoJoin() const { return entry && (type == 1 || type == 5); } bool canAutoJoin() const { return entry && (type == LFG_TYPE_DUNGEON || type == LFG_TYPE_HEROIC_DUNGEON); }
uint32 entry; uint32 entry;
uint32 type; uint32 type;
@ -305,11 +324,11 @@ struct LookingForGroupSlot
struct LookingForGroup struct LookingForGroup
{ {
LookingForGroup() {} LookingForGroup() {}
bool HaveInSlot(LookingForGroupSlot const& slot) const { return HaveInSlot(slot.entry,slot.type); } bool HaveInSlot(LookingForGroupSlot const& slot) const { return HaveInSlot(slot.entry, slot.type); }
bool HaveInSlot(uint32 _entry, uint32 _type) const bool HaveInSlot(uint32 _entry, uint32 _type) const
{ {
for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i) for(int i = 0; i < MAX_LOOKING_FOR_GROUP_SLOT; ++i)
if(slots[i].Is(_entry,_type)) if(slots[i].Is(_entry, _type))
return true; return true;
return false; return false;
} }
@ -1380,7 +1399,7 @@ class MANGOS_DLL_SPEC Player : public Unit
uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); } uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); }
uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); } uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); }
void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2,profs); } void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); }
void InitPrimaryProffesions(); void InitPrimaryProffesions();
PlayerSpellMap const& GetSpellMap() const { return m_spells; } PlayerSpellMap const& GetSpellMap() const { return m_spells; }

View file

@ -179,10 +179,10 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
data << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4, always empty data << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4, always empty
data << SubName; data << SubName;
data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0 data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0
data << uint32(ci->type_flags); // flags wdbFeild7=wad flags1 data << uint32(ci->type_flags); // flags
data << uint32(ci->type); data << uint32(ci->type); // CreatureType.dbc
data << uint32(ci->family); // family wdbFeild9 data << uint32(ci->family); // CreatureFamily.dbc
data << uint32(ci->rank); // rank wdbFeild10 data << uint32(ci->rank); // Creature Rank (elite, boss, etc)
data << uint32(ci->PetSpellDataId); // Id from CreatureSpellData.dbc wdbField12 data << uint32(ci->PetSpellDataId); // Id from CreatureSpellData.dbc wdbField12
data << uint32(ci->DisplayID_A); // modelid_male1 data << uint32(ci->DisplayID_A); // modelid_male1
data << uint32(ci->DisplayID_H); // modelid_female1 ? data << uint32(ci->DisplayID_H); // modelid_female1 ?
@ -192,7 +192,7 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
data << float(ci->unk17); // unk data << float(ci->unk17); // unk
data << uint8(ci->RacialLeader); data << uint8(ci->RacialLeader);
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE " ); sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" );
} }
else else
{ {
@ -204,7 +204,7 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data )
WorldPacket data( SMSG_CREATURE_QUERY_RESPONSE, 4 ); WorldPacket data( SMSG_CREATURE_QUERY_RESPONSE, 4 );
data << uint32(entry | 0x80000000); data << uint32(entry | 0x80000000);
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE " ); sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" );
} }
} }
@ -219,7 +219,6 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID); const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID);
if(info) if(info)
{ {
std::string Name; std::string Name;
std::string IconName; std::string IconName;
std::string CastBarCaption; std::string CastBarCaption;
@ -253,7 +252,7 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
data.append(info->raw.data, 24); data.append(info->raw.data, 24);
data << float(info->size); // go size data << float(info->size); // go size
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent CMSG_GAMEOBJECT_QUERY " ); sLog.outDebug( "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE" );
} }
else else
{ {
@ -266,7 +265,7 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data )
WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 4 ); WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 4 );
data << uint32(entryID | 0x80000000); data << uint32(entryID | 0x80000000);
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent CMSG_GAMEOBJECT_QUERY " ); sLog.outDebug( "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE" );
} }
} }
@ -318,7 +317,7 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/)
void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data ) void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,4+8); CHECK_PACKET_SIZE(recv_data, 4 + 8);
uint32 textID; uint32 textID;
uint64 guid; uint64 guid;
@ -353,7 +352,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
else else
{ {
std::string Text_0[8], Text_1[8]; std::string Text_0[8], Text_1[8];
for (int i=0;i<8;++i) for (int i = 0; i < 8; ++i)
{ {
Text_0[i]=pGossip->Options[i].Text_0; Text_0[i]=pGossip->Options[i].Text_0;
Text_1[i]=pGossip->Options[i].Text_1; Text_1[i]=pGossip->Options[i].Text_1;
@ -365,7 +364,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
NpcTextLocale const *nl = objmgr.GetNpcTextLocale(textID); NpcTextLocale const *nl = objmgr.GetNpcTextLocale(textID);
if (nl) if (nl)
{ {
for (int i=0;i<8;++i) for (int i = 0; i < 8; ++i)
{ {
if (nl->Text_0[i].size() > size_t(loc_idx) && !nl->Text_0[i][loc_idx].empty()) if (nl->Text_0[i].size() > size_t(loc_idx) && !nl->Text_0[i][loc_idx].empty())
Text_0[i]=nl->Text_0[i][loc_idx]; Text_0[i]=nl->Text_0[i][loc_idx];
@ -375,7 +374,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
} }
} }
for (int i=0; i<8; ++i) for (int i = 0; i < 8; ++i)
{ {
data << pGossip->Options[i].Probability; data << pGossip->Options[i].Probability;
@ -401,12 +400,12 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent SMSG_NPC_TEXT_UPDATE " ); sLog.outDebug( "WORLD: Sent SMSG_NPC_TEXT_UPDATE" );
} }
void WorldSession::HandlePageQueryOpcode( WorldPacket & recv_data ) void WorldSession::HandlePageTextQueryOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,4); CHECK_PACKET_SIZE(recv_data, 4);
uint32 pageID; uint32 pageID;
@ -447,6 +446,6 @@ void WorldSession::HandlePageQueryOpcode( WorldPacket & recv_data )
} }
SendPacket( &data ); SendPacket( &data );
sLog.outDebug( "WORLD: Sent SMSG_PAGE_TEXT_QUERY_RESPONSE " ); sLog.outDebug( "WORLD: Sent SMSG_PAGE_TEXT_QUERY_RESPONSE" );
} }
} }

View file

@ -110,7 +110,7 @@ void WorldSession::HandleQuestgiverHelloOpcode( WorldPacket & recv_data )
void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data ) void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data, 8+4);
uint64 guid; uint64 guid;
uint32 quest; uint32 quest;
@ -119,7 +119,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
if(!GetPlayer()->isAlive()) if(!GetPlayer()->isAlive())
return; return;
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST npc = %u, quest = %u",uint32(GUID_LOPART(guid)),quest ); sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_ACCEPT_QUEST npc = %u, quest = %u", uint32(GUID_LOPART(guid)), quest );
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER); Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM|TYPEMASK_PLAYER);
@ -204,14 +204,14 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
_player->PlayerTalkClass->CloseGossip(); _player->PlayerTalkClass->CloseGossip();
} }
void WorldSession::HandleQuestgiverQuestQueryOpcode( WorldPacket & recv_data ) void WorldSession::HandleQuestgiverQueryQuestOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data, 8+4);
uint64 guid; uint64 guid;
uint32 quest; uint32 quest;
recv_data >> guid >> quest; recv_data >> guid >> quest;
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u",uint32(GUID_LOPART(guid)),quest ); sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUERY_QUEST npc = %u, quest = %u", uint32(GUID_LOPART(guid)), quest );
// Verify that the guid is valid and is a questgiver or involved in the requested quest // Verify that the guid is valid and is a questgiver or involved in the requested quest
Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM); Object* pObject = ObjectAccessor::GetObjectByTypeMask(*_player, guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT|TYPEMASK_ITEM);
@ -385,7 +385,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data)
sLog.outDebug( "WORLD: Received CMSG_QUEST_CONFIRM_ACCEPT quest = %u",quest ); sLog.outDebug( "WORLD: Received CMSG_QUEST_CONFIRM_ACCEPT quest = %u",quest );
} }
void WorldSession::HandleQuestComplete(WorldPacket& recv_data) void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recv_data)
{ {
CHECK_PACKET_SIZE(recv_data,8+4); CHECK_PACKET_SIZE(recv_data,8+4);
@ -413,12 +413,12 @@ void WorldSession::HandleQuestComplete(WorldPacket& recv_data)
} }
} }
void WorldSession::HandleQuestAutoLaunch(WorldPacket& /*recvPacket*/) void WorldSession::HandleQuestgiverQuestAutoLaunch(WorldPacket& /*recvPacket*/)
{ {
sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUEST_AUTOLAUNCH (Send your log to anakin if you see this message)" ); sLog.outDebug( "WORLD: Received CMSG_QUESTGIVER_QUEST_AUTOLAUNCH" );
} }
void WorldSession::HandleQuestPushToParty(WorldPacket& recvPacket) void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
{ {
CHECK_PACKET_SIZE(recvPacket,4); CHECK_PACKET_SIZE(recvPacket,4);
@ -594,7 +594,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
return result; return result;
} }
void WorldSession::HandleQuestgiverStatusQueryMultipleOpcode(WorldPacket& /*recvPacket*/) void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/)
{ {
sLog.outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY"); sLog.outDebug("WORLD: Received CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY");

View file

@ -36,7 +36,7 @@ void WorldSession::HandleLearnTalentOpcode( WorldPacket & recv_data )
_player->LearnTalent(talent_id, requested_rank); _player->LearnTalent(talent_id, requested_rank);
} }
void WorldSession::HandleTalentWipeOpcode( WorldPacket & recv_data ) void WorldSession::HandleTalentWipeConfirmOpcode( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8); CHECK_PACKET_SIZE(recv_data,8);
@ -47,7 +47,7 @@ void WorldSession::HandleTalentWipeOpcode( WorldPacket & recv_data )
Creature *unit = GetPlayer()->GetNPCIfCanInteractWith(guid,UNIT_NPC_FLAG_TRAINER); Creature *unit = GetPlayer()->GetNPCIfCanInteractWith(guid,UNIT_NPC_FLAG_TRAINER);
if (!unit) if (!unit)
{ {
sLog.outDebug( "WORLD: HandleTalentWipeOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) ); sLog.outDebug( "WORLD: HandleTalentWipeConfirmOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) );
return; return;
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -453,7 +453,7 @@ void WorldSession::HandleCancelChanneling( WorldPacket & /*recv_data */)
*/ */
} }
void WorldSession::HandleTotemDestroy( WorldPacket& recvPacket) void WorldSession::HandleTotemDestroyed( WorldPacket& recvPacket)
{ {
CHECK_PACKET_SIZE(recvPacket, 1); CHECK_PACKET_SIZE(recvPacket, 1);

View file

@ -155,7 +155,7 @@ bool WorldSession::SendLearnNewTaxiNode( Creature* unit )
return false; return false;
} }
void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data ) void WorldSession::HandleActivateTaxiExpressOpcode ( WorldPacket & recv_data )
{ {
CHECK_PACKET_SIZE(recv_data,8+4+4); CHECK_PACKET_SIZE(recv_data,8+4+4);
@ -169,7 +169,7 @@ void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data )
Creature *npc = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_FLIGHTMASTER); Creature *npc = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_FLIGHTMASTER);
if (!npc) if (!npc)
{ {
sLog.outDebug( "WORLD: HandleActivateTaxiFarOpcode - Unit (GUID: %u) not found or you can't interact with it.", uint32(GUID_LOPART(guid)) ); sLog.outDebug( "WORLD: HandleActivateTaxiExpressOpcode - Unit (GUID: %u) not found or you can't interact with it.", uint32(GUID_LOPART(guid)) );
return; return;
} }
// recheck // recheck
@ -192,7 +192,7 @@ void WorldSession::HandleActivateTaxiFarOpcode ( WorldPacket & recv_data )
GetPlayer()->ActivateTaxiPathTo(nodes, npc); GetPlayer()->ActivateTaxiPathTo(nodes, npc);
} }
void WorldSession::HandleTaxiNextDestinationOpcode(WorldPacket& /*recv_data*/) void WorldSession::HandleMoveSplineDoneOpcode(WorldPacket& /*recv_data*/)
{ {
sLog.outDebug( "WORLD: Received CMSG_MOVE_SPLINE_DONE" ); sLog.outDebug( "WORLD: Received CMSG_MOVE_SPLINE_DONE" );

View file

@ -540,7 +540,7 @@ void Transport::UpdateForMap(Map const* targetMap)
UpdateData transData; UpdateData transData;
BuildCreateUpdateBlockForPlayer(&transData, itr->getSource()); BuildCreateUpdateBlockForPlayer(&transData, itr->getSource());
WorldPacket packet; WorldPacket packet;
transData.BuildPacket(&packet, true); transData.BuildPacket(&packet);
itr->getSource()->SendDirectMessage(&packet); itr->getSource()->SendDirectMessage(&packet);
} }
} }
@ -550,7 +550,7 @@ void Transport::UpdateForMap(Map const* targetMap)
UpdateData transData; UpdateData transData;
BuildOutOfRangeUpdateBlock(&transData); BuildOutOfRangeUpdateBlock(&transData);
WorldPacket out_packet; WorldPacket out_packet;
transData.BuildPacket(&out_packet, true); transData.BuildPacket(&out_packet);
for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr) for(Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
if(this != itr->getSource()->GetTransport()) if(this != itr->getSource()->GetTransport())

View file

@ -70,6 +70,7 @@ class Transport : protected GameObject
using GameObject::GetPositionZ; using GameObject::GetPositionZ;
using GameObject::BuildCreateUpdateBlockForPlayer; using GameObject::BuildCreateUpdateBlockForPlayer;
using GameObject::BuildOutOfRangeUpdateBlock; using GameObject::BuildOutOfRangeUpdateBlock;
using GameObject::GetPackGUID;
bool Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags); bool Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags);
bool GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids); bool GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids);

View file

@ -285,6 +285,7 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty
} }
data << uint32(MovementFlags); data << uint32(MovementFlags);
data << uint32(Time); // Time in between points data << uint32(Time); // Time in between points
data << uint32(1); // 1 single waypoint data << uint32(1); // 1 single waypoint
data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B
@ -299,14 +300,14 @@ void Unit::SendMonsterMoveByPath(Path const& path, uint32 start, uint32 end, uin
{ {
uint32 traveltime = uint32(path.GetTotalLength(start, end) * 32); uint32 traveltime = uint32(path.GetTotalLength(start, end) * 32);
uint32 pathSize = end-start; uint32 pathSize = end - start;
WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) ); WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) );
data.append(GetPackGUID()); data.append(GetPackGUID());
data << GetPositionX(); data << GetPositionX();
data << GetPositionY(); data << GetPositionY();
data << GetPositionZ(); data << GetPositionZ();
data << getMSTime(); data << uint32(getMSTime());
data << uint8( 0 ); data << uint8( 0 );
data << uint32( MovementFlags ); data << uint32( MovementFlags );
data << uint32( traveltime ); data << uint32( traveltime );
@ -544,7 +545,6 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
if (pVictim->GetTypeId() == TYPEID_PLAYER) if (pVictim->GetTypeId() == TYPEID_PLAYER)
((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, health); ((Player*)pVictim)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, health);
// find player: owner of controlled `this` or `this` itself maybe // find player: owner of controlled `this` or `this` itself maybe
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself(); Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
@ -1147,7 +1147,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage *damageInfo, bool durabilityLoss)
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER) if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
{ {
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId()); const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
if(area && area->flags & 0x800) //sanctuary if(area && area->flags & AREA_FLAG_SANCTUARY) // sanctuary
return; return;
} }
@ -1422,11 +1422,11 @@ void Unit::DealMeleeDamage(CalcDamageInfo *damageInfo, bool durabilityLoss)
if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER) if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
{ {
const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId()); const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
if(area && area->flags & 0x800) //sanctuary if(area && area->flags & AREA_FLAG_SANCTUARY) // sanctuary
return; return;
} }
// Hmmmm dont like this emotes cloent must by self do all animations // Hmmmm dont like this emotes client must by self do all animations
if (damageInfo->HitInfo&HITINFO_CRITICALHIT) if (damageInfo->HitInfo&HITINFO_CRITICALHIT)
pVictim->HandleEmoteCommand(EMOTE_ONESHOT_WOUNDCRITICAL); pVictim->HandleEmoteCommand(EMOTE_ONESHOT_WOUNDCRITICAL);
if(damageInfo->blocked_amount && damageInfo->TargetState!=VICTIMSTATE_BLOCKS) if(damageInfo->blocked_amount && damageInfo->TargetState!=VICTIMSTATE_BLOCKS)
@ -1551,7 +1551,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo *damageInfo, bool durabilityLoss)
void Unit::HandleEmoteCommand(uint32 anim_id) void Unit::HandleEmoteCommand(uint32 anim_id)
{ {
WorldPacket data( SMSG_EMOTE, 12 ); WorldPacket data( SMSG_EMOTE, 4 + 8 );
data << uint32(anim_id); data << uint32(anim_id);
data << uint64(GetGUID()); data << uint64(GetGUID());
SendMessageToSet(&data, true); SendMessageToSet(&data, true);
@ -2319,7 +2319,7 @@ float Unit::CalculateLevelPenalty(SpellEntry const* spellProto) const
void Unit::SendAttackStart(Unit* pVictim) void Unit::SendAttackStart(Unit* pVictim)
{ {
WorldPacket data( SMSG_ATTACKSTART, 16 ); WorldPacket data( SMSG_ATTACKSTART, 8 + 8 );
data << uint64(GetGUID()); data << uint64(GetGUID());
data << uint64(pVictim->GetGUID()); data << uint64(pVictim->GetGUID());
@ -4227,7 +4227,7 @@ void Unit::RemoveAllGameObjects()
void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log) void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
{ {
WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+1+4+4+1+1+4+4+1)); // we guess size WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+4+1+4+4+1+1+4+4+1)); // we guess size
data.append(log->target->GetPackGUID()); data.append(log->target->GetPackGUID());
data.append(log->attacker->GetPackGUID()); data.append(log->attacker->GetPackGUID());
data << uint32(log->SpellID); data << uint32(log->SpellID);
@ -4244,10 +4244,10 @@ void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log)
SendMessageToSet( &data, true ); SendMessageToSet( &data, true );
} }
void Unit::SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage, SpellSchoolMask damageSchoolMask,uint32 AbsorbedDamage, uint32 Resist,bool PhysicalDamage, uint32 Blocked, bool CriticalHit) void Unit::SendSpellNonMeleeDamageLog(Unit *target, uint32 SpellID, uint32 Damage, SpellSchoolMask damageSchoolMask, uint32 AbsorbedDamage, uint32 Resist, bool PhysicalDamage, uint32 Blocked, bool CriticalHit)
{ {
SpellNonMeleeDamage log(this,target,SpellID,damageSchoolMask); SpellNonMeleeDamage log(this, target, SpellID, damageSchoolMask);
log.damage = Damage-AbsorbedDamage-Resist-Blocked; log.damage = Damage - AbsorbedDamage - Resist - Blocked;
log.absorb = AbsorbedDamage; log.absorb = AbsorbedDamage;
log.resist = Resist; log.resist = Resist;
log.physicalLog = PhysicalDamage; log.physicalLog = PhysicalDamage;
@ -4258,6 +4258,52 @@ void Unit::SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage,
SendSpellNonMeleeDamageLog(&log); SendSpellNonMeleeDamageLog(&log);
} }
void Unit::SendPeriodicAuraLog(SpellPeriodicAuraLogInfo *pInfo)
{
Aura *aura = pInfo->aura;
Modifier *mod = aura->GetModifier();
WorldPacket data(SMSG_PERIODICAURALOG, 30);
data.append(aura->GetTarget()->GetPackGUID());
data.appendPackGUID(aura->GetCasterGUID());
data << uint32(aura->GetId()); // spellId
data << uint32(1); // count
data << uint32(mod->m_auraname); // auraId
switch(mod->m_auraname)
{
case SPELL_AURA_PERIODIC_DAMAGE:
case SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
data << uint32(pInfo->damage); // damage
data << uint32(pInfo->overDamage); // overkill?
data << uint32(GetSpellSchoolMask(aura->GetSpellProto()));
data << uint32(pInfo->absorb); // absorb
data << uint32(pInfo->resist); // resist
data << uint8(0); // new 3.1.2
break;
case SPELL_AURA_PERIODIC_HEAL:
case SPELL_AURA_OBS_MOD_HEALTH:
data << uint32(pInfo->damage); // damage
data << uint32(pInfo->overDamage); // overheal?
data << uint8(0); // new 3.1.2
break;
case SPELL_AURA_OBS_MOD_MANA:
case SPELL_AURA_PERIODIC_ENERGIZE:
data << uint32(mod->m_miscvalue); // power type
data << uint32(pInfo->damage); // damage
break;
case SPELL_AURA_PERIODIC_MANA_LEECH:
data << uint32(mod->m_miscvalue); // power type
data << uint32(pInfo->damage); // amount
data << float(pInfo->multiplier); // gain multiplier
break;
default:
sLog.outError("Unit::SendPeriodicAuraLog: unknown aura %u", uint32(mod->m_auraname));
return;
}
aura->GetTarget()->SendMessageToSet(&data, true);
}
void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell) void Unit::ProcDamageAndSpell(Unit *pVictim, uint32 procAttacker, uint32 procVictim, uint32 procExtra, uint32 amount, WeaponAttackType attType, SpellEntry const *procSpell)
{ {
// Not much to do if no flags are set. // Not much to do if no flags are set.
@ -4285,41 +4331,42 @@ void Unit::SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo)
void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo) void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
{ {
uint32 count = 1; sLog.outDebug("WORLD: Sending SMSG_ATTACKERSTATEUPDATE");
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, (16+45)); // we guess size
data << (uint32)damageInfo->HitInfo;
data.append(GetPackGUID());
data.append(damageInfo->target->GetPackGUID());
data << (uint32)(damageInfo->damage); // Full damage
data << uint32(0); // overkill value
data << (uint8)count; // Sub damage count uint32 count = 1;
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, 16 + 45); // we guess size
data << uint32(damageInfo->HitInfo);
data.append(damageInfo->attacker->GetPackGUID());
data.append(damageInfo->target->GetPackGUID());
data << uint32(damageInfo->damage); // Full damage
data << uint32(0); // overkill value
data << uint8(count); // Sub damage count
for(int i = 0; i < count; ++i) for(int i = 0; i < count; ++i)
{ {
data << (uint32)(damageInfo->damageSchoolMask); // School of sub damage data << uint32(damageInfo->damageSchoolMask); // School of sub damage
data << (float)damageInfo->damage; // sub damage data << float(damageInfo->damage); // sub damage
data << (uint32)damageInfo->damage; // Sub Damage data << uint32(damageInfo->damage); // Sub Damage
} }
if(damageInfo->HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2)) if(damageInfo->HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2))
{ {
for(int i = 0; i < count; ++i) for(int i = 0; i < count; ++i)
data << (uint32)damageInfo->absorb; // Absorb data << uint32(damageInfo->absorb); // Absorb
} }
if(damageInfo->HitInfo & (HITINFO_RESIST | HITINFO_RESIST2)) if(damageInfo->HitInfo & (HITINFO_RESIST | HITINFO_RESIST2))
{ {
for(int i = 0; i < count; ++i) for(int i = 0; i < count; ++i)
data << (uint32)damageInfo->resist; // Resist data << uint32(damageInfo->resist); // Resist
} }
data << (uint8)damageInfo->TargetState; data << uint8(damageInfo->TargetState);
data << (uint32)0; data << uint32(0);
data << (uint32)0; data << uint32(0);
if(damageInfo->HitInfo & HITINFO_BLOCK) if(damageInfo->HitInfo & HITINFO_BLOCK)
data << (uint32)damageInfo->blocked_amount; data << uint32(damageInfo->blocked_amount);
if(damageInfo->HitInfo & HITINFO_UNK3) if(damageInfo->HitInfo & HITINFO_UNK3)
data << uint32(0); data << uint32(0);
@ -4348,71 +4395,17 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo *damageInfo)
void Unit::SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount) void Unit::SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount)
{ {
sLog.outDebug("WORLD: Sending SMSG_ATTACKERSTATEUPDATE"); CalcDamageInfo dmgInfo;
dmgInfo.HitInfo = HitInfo;
WorldPacket data(SMSG_ATTACKERSTATEUPDATE, (16+45)); // we guess size dmgInfo.attacker = this;
data << uint32(HitInfo); // flags dmgInfo.target = target;
data.append(GetPackGUID()); dmgInfo.damage = Damage - AbsorbDamage - Resist - BlockedAmount;
data.append(target->GetPackGUID()); dmgInfo.damageSchoolMask = damageSchoolMask;
data << uint32(Damage-AbsorbDamage-Resist-BlockedAmount);// damage dmgInfo.absorb = AbsorbDamage;
data << uint32(0); // overkill value dmgInfo.resist = Resist;
dmgInfo.TargetState = TargetState;
data << (uint8)SwingType; // count? dmgInfo.blocked_amount = BlockedAmount;
SendAttackStateUpdate(&dmgInfo);
// for(i = 0; i < SwingType; ++i)
data << (uint32)damageSchoolMask;
data << (float)(Damage-AbsorbDamage-Resist-BlockedAmount);
data << (uint32)(Damage-AbsorbDamage-Resist-BlockedAmount);
// end loop
if(HitInfo & (HITINFO_ABSORB | HITINFO_ABSORB2))
{
// for(i = 0; i < SwingType; ++i)
data << uint32(AbsorbDamage);
// end loop
}
if(HitInfo & (HITINFO_RESIST | HITINFO_RESIST2))
{
// for(i = 0; i < SwingType; ++i)
data << uint32(Resist);
// end loop
}
data << (uint8)TargetState;
data << (uint32)0;
data << (uint32)0;
if(HitInfo & HITINFO_BLOCK)
{
data << uint32(BlockedAmount);
}
if(HitInfo & HITINFO_UNK3)
{
data << uint32(0);
}
if(HitInfo & HITINFO_UNK1)
{
data << uint32(0);
data << float(0);
data << float(0);
data << float(0);
data << float(0);
data << float(0);
data << float(0);
data << float(0);
data << float(0);
for(uint8 i = 0; i < 5; ++i)
{
data << float(0);
data << float(0);
}
data << uint32(0);
}
SendMessageToSet( &data, true );
} }
bool Unit::HandleHasteAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const * /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown) bool Unit::HandleHasteAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAura, SpellEntry const * /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown)
@ -6605,7 +6598,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) ) if( m_extraAttacks && IsSpellHaveEffect(triggerEntry, SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
return false; return false;
// Costum requirements (not listed in procEx) Warning! damage dealing after this // Custom requirements (not listed in procEx) Warning! damage dealing after this
// Custom triggered spells // Custom triggered spells
switch (auraSpellInfo->Id) switch (auraSpellInfo->Id)
{ {
@ -6639,7 +6632,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
// Greater Heal Refund (Avatar Raiment set) // Greater Heal Refund (Avatar Raiment set)
case 37594: case 37594:
{ {
// Not give if target alredy have full health // Not give if target already have full health
if (pVictim->GetHealth() == pVictim->GetMaxHealth()) if (pVictim->GetHealth() == pVictim->GetMaxHealth())
return false; return false;
// If your Greater Heal brings the target to full health, you gain $37595s1 mana. // If your Greater Heal brings the target to full health, you gain $37595s1 mana.
@ -6674,7 +6667,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
} }
} }
// Costum basepoints/target for exist spell // Custom basepoints/target for exist spell
// dummy basepoints or other customs // dummy basepoints or other customs
switch(trigger_spell_id) switch(trigger_spell_id)
{ {
@ -6687,7 +6680,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
target = pVictim; target = pVictim;
break; break;
} }
// Combo points add triggers (need add combopoint only for main tatget, and after possible combopoints reset) // Combo points add triggers (need add combopoint only for main target, and after possible combopoints reset)
case 15250: // Rogue Setup case 15250: // Rogue Setup
{ {
if(!pVictim || pVictim != getVictim()) // applied only for main target if(!pVictim || pVictim != getVictim()) // applied only for main target
@ -9402,7 +9395,7 @@ void Unit::SetSpeed(UnitMoveType mtype, float rate, bool forced)
void Unit::SetHover(bool on) void Unit::SetHover(bool on)
{ {
if(on) if(on)
CastSpell(this,11010,true); CastSpell(this, 11010, true);
else else
RemoveAurasDueToSpell(11010); RemoveAurasDueToSpell(11010);
} }
@ -10421,7 +10414,7 @@ bool CharmInfo::AddSpellToActionBar(uint32 spell_id, ActiveStates newstate)
} }
} }
// or use empty slot in other case // or use empty slot in other case
for(uint8 i = 0; i < MAX_UNIT_ACTION_BAR_INDEX; ++i) for(uint8 i = 0; i < MAX_UNIT_ACTION_BAR_INDEX; ++i)
{ {
if (!PetActionBar[i].SpellOrAction && PetActionBar[i].IsActionBarForSpell()) if (!PetActionBar[i].SpellOrAction && PetActionBar[i].IsActionBarForSpell())
@ -10899,7 +10892,7 @@ void Unit::SendPetCastFail(uint32 spellid, SpellCastResult msg)
if(!owner || owner->GetTypeId() != TYPEID_PLAYER) if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
return; return;
WorldPacket data(SMSG_PET_CAST_FAILED, (4+1)); WorldPacket data(SMSG_PET_CAST_FAILED, 1 + 4 + 1);
data << uint8(0); // cast count? data << uint8(0); // cast count?
data << uint32(spellid); data << uint32(spellid);
data << uint8(msg); data << uint8(msg);
@ -10925,7 +10918,7 @@ void Unit::SendPetTalk (uint32 pettalk)
if(!owner || owner->GetTypeId() != TYPEID_PLAYER) if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
return; return;
WorldPacket data(SMSG_PET_ACTION_SOUND, 8+4); WorldPacket data(SMSG_PET_ACTION_SOUND, 8 + 4);
data << uint64(GetGUID()); data << uint64(GetGUID());
data << uint32(pettalk); data << uint32(pettalk);
((Player*)owner)->GetSession()->SendPacket(&data); ((Player*)owner)->GetSession()->SendPacket(&data);
@ -10952,7 +10945,7 @@ void Unit::SendPetClearCooldown (uint32 spellid)
if(!owner || owner->GetTypeId() != TYPEID_PLAYER) if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
return; return;
WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8)); WorldPacket data(SMSG_CLEAR_COOLDOWN, 4+8);
data << uint32(spellid); data << uint32(spellid);
data << uint64(GetGUID()); data << uint64(GetGUID());
((Player*)owner)->GetSession()->SendPacket(&data); ((Player*)owner)->GetSession()->SendPacket(&data);
@ -10964,8 +10957,9 @@ void Unit::SendPetAIReaction(uint64 guid)
if(!owner || owner->GetTypeId() != TYPEID_PLAYER) if(!owner || owner->GetTypeId() != TYPEID_PLAYER)
return; return;
WorldPacket data(SMSG_AI_REACTION, 12); WorldPacket data(SMSG_AI_REACTION, 8 + 4);
data << uint64(guid) << uint32(00000002); data << uint64(guid);
data << uint32(AI_REACTION_AGGRO);
((Player*)owner)->GetSession()->SendPacket(&data); ((Player*)owner)->GetSession()->SendPacket(&data);
} }
@ -10982,7 +10976,7 @@ void Unit::StopMoving()
// Relocate(GetPositionX(), GetPositionY(), z); // Relocate(GetPositionX(), GetPositionY(), z);
Relocate(GetPositionX(), GetPositionY(),GetPositionZ()); Relocate(GetPositionX(), GetPositionY(),GetPositionZ());
SendMonsterMove(GetPositionX(), GetPositionY(), GetPositionZ(), 0, true, 0); SendMonsterMove(GetPositionX(), GetPositionY(), GetPositionZ(), 0, 0, 0);
// update position and orientation; // update position and orientation;
WorldPacket data; WorldPacket data;

View file

@ -597,6 +597,42 @@ enum MovementFlags
MOVEMENTFLAG_UNK3 = 0x40000000 MOVEMENTFLAG_UNK3 = 0x40000000
}; };
enum MonsterMovementFlags
{
MONSTER_MOVE_NONE = 0x00000000,
MONSTER_MOVE_FORWARD = 0x00000001,
MONSTER_MOVE_BACKWARD = 0x00000002,
MONSTER_MOVE_STRAFE_LEFT = 0x00000004,
MONSTER_MOVE_STRAFE_RIGHT = 0x00000008,
MONSTER_MOVE_LEFT = 0x00000010, // turn
MONSTER_MOVE_RIGHT = 0x00000020, // turn
MONSTER_MOVE_PITCH_UP = 0x00000040,
MONSTER_MOVE_PITCH_DOWN = 0x00000080,
MONSTER_MOVE_TELEPORT = 0x00000100,
MONSTER_MOVE_TELEPORT2 = 0x00000200,
MONSTER_MOVE_LEVITATING = 0x00000400,
MONSTER_MOVE_UNK1 = 0x00000800, // float+uint32
MONSTER_MOVE_WALK = 0x00001000, // run2?
MONSTER_MOVE_SPLINE = 0x00002000, // spline n*(float x,y,z)
// 0x4000, 0x8000, 0x10000, 0x20000 run
MONSTER_MOVE_SPLINE2 = 0x00040000, // spline n*(float x,y,z)
MONSTER_MOVE_UNK2 = 0x00080000, // used for flying mobs
MONSTER_MOVE_UNK3 = 0x00100000, // used for flying mobs
MONSTER_MOVE_UNK4 = 0x00200000, // uint8+uint32
MONSTER_MOVE_UNK5 = 0x00400000, // run in place, then teleport to final point
MONSTER_MOVE_UNK6 = 0x00800000, // teleport
MONSTER_MOVE_UNK7 = 0x01000000, // run
MONSTER_MOVE_FLY = 0x02000000, // swimming/flying (depends on mob?)
MONSTER_MOVE_UNK9 = 0x04000000, // run
MONSTER_MOVE_UNK10 = 0x08000000, // run
MONSTER_MOVE_UNK11 = 0x10000000, // run
MONSTER_MOVE_UNK12 = 0x20000000, // run
MONSTER_MOVE_UNK13 = 0x40000000, // levitating
// masks
MONSTER_MOVE_SPLINE_FLY = 0x00003000, // fly by points
};
enum DiminishingLevels enum DiminishingLevels
{ {
DIMINISHING_LEVEL_1 = 0, DIMINISHING_LEVEL_1 = 0,
@ -651,7 +687,7 @@ struct CalcDamageInfo
uint32 procAttacker; uint32 procAttacker;
uint32 procVictim; uint32 procVictim;
uint32 procEx; uint32 procEx;
uint32 cleanDamage; // Used only fo rage calcultion uint32 cleanDamage; // Used only for rage calculation
MeleeHitOutcome hitOutCome; // TODO: remove this field (need use TargetState) MeleeHitOutcome hitOutCome; // TODO: remove this field (need use TargetState)
}; };
@ -678,6 +714,19 @@ struct SpellNonMeleeDamage{
uint32 cleanDamage; uint32 cleanDamage;
}; };
struct SpellPeriodicAuraLogInfo
{
SpellPeriodicAuraLogInfo(Aura *_aura, uint32 _damage, uint32 _overDamage, uint32 _absorb, uint32 _resist, float _multiplier)
: aura(_aura), damage(_damage), overDamage(_overDamage), absorb(_absorb), resist(_resist), multiplier(_multiplier) {}
Aura *aura;
uint32 damage;
uint32 absorb;
uint32 resist;
uint32 overDamage; // overkill/overheal
float multiplier;
};
uint32 createProcExtendMask(SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition); uint32 createProcExtendMask(SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition);
#define MAX_DECLINED_NAME_CASES 5 #define MAX_DECLINED_NAME_CASES 5
@ -1075,7 +1124,8 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
void SendAttackStateUpdate(CalcDamageInfo *damageInfo); void SendAttackStateUpdate(CalcDamageInfo *damageInfo);
void SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount); void SendAttackStateUpdate(uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount);
void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log); void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage *log);
void SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID,uint32 Damage, SpellSchoolMask damageSchoolMask,uint32 AbsorbedDamage, uint32 Resist,bool PhysicalDamage, uint32 Blocked, bool CriticalHit = false); void SendSpellNonMeleeDamageLog(Unit *target,uint32 SpellID, uint32 Damage, SpellSchoolMask damageSchoolMask, uint32 AbsorbedDamage, uint32 Resist, bool PhysicalDamage, uint32 Blocked, bool CriticalHit = false);
void SendPeriodicAuraLog(SpellPeriodicAuraLogInfo *pInfo);
void SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo); void SendSpellMiss(Unit *target, uint32 spellID, SpellMissInfo missInfo);
void NearTeleportTo(float x, float y, float z, float orientation, bool casting = false); void NearTeleportTo(float x, float y, float z, float orientation, bool casting = false);

View file

@ -101,24 +101,20 @@ void UpdateData::Compress(void* dst, uint32 *dst_size, void* src, int src_size)
*dst_size = c_stream.total_out; *dst_size = c_stream.total_out;
} }
bool UpdateData::BuildPacket(WorldPacket *packet, bool /*hasTransport*/) bool UpdateData::BuildPacket(WorldPacket *packet)
{ {
ByteBuffer buf(m_data.size() + 10 + m_outOfRangeGUIDs.size()*8); ByteBuffer buf(m_data.size());
buf << (uint32) (!m_outOfRangeGUIDs.empty() ? m_blockCount + 1 : m_blockCount); buf << (uint32) (!m_outOfRangeGUIDs.empty() ? m_blockCount + 1 : m_blockCount);
//buf << (uint8) (hasTransport ? 1 : 0);
if(!m_outOfRangeGUIDs.empty()) if(!m_outOfRangeGUIDs.empty())
{ {
buf << (uint8) UPDATETYPE_OUT_OF_RANGE_OBJECTS; buf << (uint8) UPDATETYPE_OUT_OF_RANGE_OBJECTS;
buf << (uint32) m_outOfRangeGUIDs.size(); buf << (uint32) m_outOfRangeGUIDs.size();
for(std::set<uint64>::const_iterator i = m_outOfRangeGUIDs.begin(); for(std::set<uint64>::const_iterator i = m_outOfRangeGUIDs.begin(); i != m_outOfRangeGUIDs.end(); ++i)
i != m_outOfRangeGUIDs.end(); ++i)
{ {
//buf.appendPackGUID(*i); buf.appendPackGUID(*i);
buf << (uint8)0xFF;
buf << (uint64) *i;
} }
} }
@ -126,24 +122,23 @@ bool UpdateData::BuildPacket(WorldPacket *packet, bool /*hasTransport*/)
packet->clear(); packet->clear();
if (m_data.size() > 50 ) size_t pSize = buf.size();
if (pSize > 100 ) // compress large packets
{ {
uint32 destsize = buf.size() + buf.size()/10 + 16; packet->resize(pSize);
packet->resize( destsize );
packet->put(0, (uint32)buf.size()); packet->put<uint32>(0, pSize);
Compress(const_cast<uint8*>(packet->contents()) + sizeof(uint32), uint32 destsize = pSize;
&destsize, Compress(const_cast<uint8*>(packet->contents()) + sizeof(uint32), &destsize, (void*)buf.contents(), pSize);
(void*)buf.contents(),
buf.size());
if (destsize == 0) if (destsize == 0)
return false; return false;
packet->resize( destsize + sizeof(uint32) ); packet->resize( destsize + sizeof(uint32) );
packet->SetOpcode( SMSG_COMPRESSED_UPDATE_OBJECT ); packet->SetOpcode( SMSG_COMPRESSED_UPDATE_OBJECT );
} }
else else // send small packets without compression
{ {
packet->append( buf ); packet->append( buf );
packet->SetOpcode( SMSG_UPDATE_OBJECT ); packet->SetOpcode( SMSG_UPDATE_OBJECT );

View file

@ -33,15 +33,17 @@ enum OBJECT_UPDATE_TYPE
enum OBJECT_UPDATE_FLAGS enum OBJECT_UPDATE_FLAGS
{ {
UPDATEFLAG_NONE = 0x00, UPDATEFLAG_NONE = 0x0000,
UPDATEFLAG_SELF = 0x01, UPDATEFLAG_SELF = 0x0001,
UPDATEFLAG_TRANSPORT = 0x02, UPDATEFLAG_TRANSPORT = 0x0002,
UPDATEFLAG_HAS_TARGET = 0x04, UPDATEFLAG_HAS_TARGET = 0x0004,
UPDATEFLAG_LOWGUID = 0x08, UPDATEFLAG_LOWGUID = 0x0008,
UPDATEFLAG_HIGHGUID = 0x10, UPDATEFLAG_HIGHGUID = 0x0010,
UPDATEFLAG_LIVING = 0x20, UPDATEFLAG_LIVING = 0x0020,
UPDATEFLAG_HAS_POSITION = 0x40, UPDATEFLAG_HAS_POSITION = 0x0040,
UPDATEFLAG_VEHICLE = 0x80 UPDATEFLAG_VEHICLE = 0x0080,
UPDATEFLAG_POSITION = 0x0100,
UPDATEFLAG_ROTATION = 0x0200
}; };
class UpdateData class UpdateData
@ -52,7 +54,7 @@ class UpdateData
void AddOutOfRangeGUID(std::set<uint64>& guids); void AddOutOfRangeGUID(std::set<uint64>& guids);
void AddOutOfRangeGUID(const uint64 &guid); void AddOutOfRangeGUID(const uint64 &guid);
void AddUpdateBlock(const ByteBuffer &block); void AddUpdateBlock(const ByteBuffer &block);
bool BuildPacket(WorldPacket *packet, bool hasTransport = false); bool BuildPacket(WorldPacket *packet);
bool HasData() { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty(); } bool HasData() { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty(); }
void Clear(); void Clear();

View file

@ -22,23 +22,23 @@
#include "Opcodes.h" #include "Opcodes.h"
#include "Log.h" #include "Log.h"
void WorldSession::HandleVoiceSettingsOpcode( WorldPacket & recv_data ) void WorldSession::HandleVoiceSessionEnableOpcode( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: CMSG_VOICE_SETTINGS"); sLog.outDebug("WORLD: CMSG_VOICE_SESSION_ENABLE");
// uint8 isVoiceEnabled, uint8 isMicrophoneEnabled // uint8 isVoiceEnabled, uint8 isMicrophoneEnabled
recv_data.hexlike(); recv_data.hexlike();
} }
void WorldSession::HandleChannelEnableVoiceOpcode( WorldPacket & recv_data ) void WorldSession::HandleChannelVoiceOnOpcode( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: CMSG_CHANNEL_ENABLE_VOICE"); sLog.outDebug("WORLD: CMSG_CHANNEL_VOICE_ON");
// Enable Voice button in channel context menu // Enable Voice button in channel context menu
recv_data.hexlike(); recv_data.hexlike();
} }
void WorldSession::HandleChannelVoiceChatQuery( WorldPacket & recv_data ) void WorldSession::HandleSetActiveVoiceChannel( WorldPacket & recv_data )
{ {
sLog.outDebug("WORLD: CMSG_CHANNEL_VOICE_CHAT_QUERY"); sLog.outDebug("WORLD: CMSG_SET_ACTIVE_VOICE_CHANNEL");
// uint32, string // uint32, string
recv_data.hexlike(); recv_data.hexlike();
} }

View file

@ -184,7 +184,7 @@ bool WorldSession::Update(uint32 /*diff*/)
(this->*opHandle.handler)(*packet); (this->*opHandle.handler)(*packet);
// lag can cause STATUS_LOGGEDIN opcodes to arrive after the player started a transfer // lag can cause STATUS_LOGGEDIN opcodes to arrive after the player started a transfer
break; break;
case STATUS_TRANSFER_PENDING: case STATUS_TRANSFER:
if(!_player) if(!_player)
logUnexpectedOpcode(packet, "the player has not logged in yet"); logUnexpectedOpcode(packet, "the player has not logged in yet");
else if(_player->IsInWorld()) else if(_player->IsInWorld())
@ -344,12 +344,12 @@ void WorldSession::LogoutPlayer(bool Save)
if(Save) if(Save)
{ {
uint32 eslot; uint32 eslot;
for(int j = BUYBACK_SLOT_START; j < BUYBACK_SLOT_END; j++) for(int j = BUYBACK_SLOT_START; j < BUYBACK_SLOT_END; ++j)
{ {
eslot = j - BUYBACK_SLOT_START; eslot = j - BUYBACK_SLOT_START;
_player->SetUInt64Value(PLAYER_FIELD_VENDORBUYBACK_SLOT_1+eslot*2,0); _player->SetUInt64Value(PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), 0);
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1+eslot,0); _player->SetUInt32Value(PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0);
_player->SetUInt32Value(PLAYER_FIELD_BUYBACK_TIMESTAMP_1+eslot,0); _player->SetUInt32Value(PLAYER_FIELD_BUYBACK_TIMESTAMP_1 + eslot, 0);
} }
_player->SaveToDB(); _player->SaveToDB();
} }
@ -692,22 +692,22 @@ void WorldSession::SendAddonsInfo()
for(AddonsList::iterator itr = m_addonsList.begin(); itr != m_addonsList.end(); ++itr) for(AddonsList::iterator itr = m_addonsList.begin(); itr != m_addonsList.end(); ++itr)
{ {
uint8 state = (itr->Enabled ? 2 : 1); uint8 state = 2; // 2 is sent here
data << uint8(state); data << uint8(state);
uint8 unk1 = (itr->Enabled ? 1 : 0); uint8 unk1 = 1; // 1 is sent here
data << uint8(unk1); data << uint8(unk1);
if (unk1) if (unk1)
{ {
uint8 unk2 = (itr->CRC != 0x4c1c776d); // If addon is Standard addon CRC uint8 unk2 = (itr->CRC != 0x4c1c776d); // If addon is Standard addon CRC
data << uint8(unk2); data << uint8(unk2);
if (unk2) if (unk2) // if CRC is wrong, add public key (client need it)
data.append(tdata, sizeof(tdata)); data.append(tdata, sizeof(tdata));
data << uint32(0); data << uint32(0);
} }
uint8 unk3 = (itr->Enabled ? 0 : 1); uint8 unk3 = 0; // 0 is sent here
data << uint8(unk3); data << uint8(unk3);
if (unk3) if (unk3)
{ {

View file

@ -279,8 +279,8 @@ class MANGOS_DLL_SPEC WorldSession
void HandleMountSpecialAnimOpcode(WorldPacket &recvdata); void HandleMountSpecialAnimOpcode(WorldPacket &recvdata);
// character view // character view
void HandleToggleHelmOpcode(WorldPacket& recv_data); void HandleShowingHelmOpcode(WorldPacket& recv_data);
void HandleToggleCloakOpcode(WorldPacket& recv_data); void HandleShowingCloakOpcode(WorldPacket& recv_data);
// repair // repair
void HandleRepairItemOpcode(WorldPacket& recvPacket); void HandleRepairItemOpcode(WorldPacket& recvPacket);
@ -307,7 +307,7 @@ class MANGOS_DLL_SPEC WorldSession
void HandleGMTicketCreateOpcode(WorldPacket& recvPacket); void HandleGMTicketCreateOpcode(WorldPacket& recvPacket);
void HandleGMTicketSystemStatusOpcode(WorldPacket& recvPacket); void HandleGMTicketSystemStatusOpcode(WorldPacket& recvPacket);
void HandleGMTicketDeleteOpcode(WorldPacket& recvPacket); void HandleGMTicketDeleteTicketOpcode(WorldPacket& recvPacket);
void HandleGMTicketUpdateTextOpcode(WorldPacket& recvPacket); void HandleGMTicketUpdateTextOpcode(WorldPacket& recvPacket);
void HandleGMSurveySubmit(WorldPacket& recvPacket); void HandleGMSurveySubmit(WorldPacket& recvPacket);
@ -319,14 +319,14 @@ class MANGOS_DLL_SPEC WorldSession
void HandleSetSelectionOpcode(WorldPacket& recvPacket); void HandleSetSelectionOpcode(WorldPacket& recvPacket);
void HandleStandStateChangeOpcode(WorldPacket& recvPacket); void HandleStandStateChangeOpcode(WorldPacket& recvPacket);
void HandleEmoteOpcode(WorldPacket& recvPacket); void HandleEmoteOpcode(WorldPacket& recvPacket);
void HandleFriendListOpcode(WorldPacket& recvPacket); void HandleContactListOpcode(WorldPacket& recvPacket);
void HandleAddFriendOpcode(WorldPacket& recvPacket); void HandleAddFriendOpcode(WorldPacket& recvPacket);
static void HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 accountId, std::string friendNote); static void HandleAddFriendOpcodeCallBack(QueryResult *result, uint32 accountId, std::string friendNote);
void HandleDelFriendOpcode(WorldPacket& recvPacket); void HandleDelFriendOpcode(WorldPacket& recvPacket);
void HandleAddIgnoreOpcode(WorldPacket& recvPacket); void HandleAddIgnoreOpcode(WorldPacket& recvPacket);
static void HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 accountId); static void HandleAddIgnoreOpcodeCallBack(QueryResult *result, uint32 accountId);
void HandleDelIgnoreOpcode(WorldPacket& recvPacket); void HandleDelIgnoreOpcode(WorldPacket& recvPacket);
void HandleSetFriendNoteOpcode(WorldPacket& recvPacket); void HandleSetContactNotesOpcode(WorldPacket& recvPacket);
void HandleBugOpcode(WorldPacket& recvPacket); void HandleBugOpcode(WorldPacket& recvPacket);
void HandleSetAmmoOpcode(WorldPacket& recvPacket); void HandleSetAmmoOpcode(WorldPacket& recvPacket);
void HandleItemNameQueryOpcode(WorldPacket& recvPacket); void HandleItemNameQueryOpcode(WorldPacket& recvPacket);
@ -335,8 +335,8 @@ class MANGOS_DLL_SPEC WorldSession
void HandleSetFactionAtWar( WorldPacket & recv_data ); void HandleSetFactionAtWar( WorldPacket & recv_data );
void HandleSetFactionCheat( WorldPacket & recv_data ); void HandleSetFactionCheat( WorldPacket & recv_data );
void HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data); void HandleSetWatchedFactionOpcode(WorldPacket & recv_data);
void HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data); void HandleSetFactionInactiveOpcode(WorldPacket & recv_data);
void HandleUpdateAccountData(WorldPacket& recvPacket); void HandleUpdateAccountData(WorldPacket& recvPacket);
void HandleRequestAccountData(WorldPacket& recvPacket); void HandleRequestAccountData(WorldPacket& recvPacket);
@ -372,21 +372,21 @@ class MANGOS_DLL_SPEC WorldSession
//void HandleGroupCancelOpcode(WorldPacket& recvPacket); //void HandleGroupCancelOpcode(WorldPacket& recvPacket);
void HandleGroupAcceptOpcode(WorldPacket& recvPacket); void HandleGroupAcceptOpcode(WorldPacket& recvPacket);
void HandleGroupDeclineOpcode(WorldPacket& recvPacket); void HandleGroupDeclineOpcode(WorldPacket& recvPacket);
void HandleGroupUninviteNameOpcode(WorldPacket& recvPacket); void HandleGroupUninviteOpcode(WorldPacket& recvPacket);
void HandleGroupUninviteGuidOpcode(WorldPacket& recvPacket); void HandleGroupUninviteGuidOpcode(WorldPacket& recvPacket);
void HandleGroupSetLeaderOpcode(WorldPacket& recvPacket); void HandleGroupSetLeaderOpcode(WorldPacket& recvPacket);
void HandleGroupLeaveOpcode(WorldPacket& recvPacket); void HandleGroupDisbandOpcode(WorldPacket& recvPacket);
void HandleGroupPassOnLootOpcode( WorldPacket &recv_data ); void HandleOptOutOfLootOpcode( WorldPacket &recv_data );
void HandleLootMethodOpcode(WorldPacket& recvPacket); void HandleLootMethodOpcode(WorldPacket& recvPacket);
void HandleLootRoll( WorldPacket &recv_data ); void HandleLootRoll( WorldPacket &recv_data );
void HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data ); void HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data );
void HandleRaidIconTargetOpcode( WorldPacket & recv_data ); void HandleRaidTargetUpdateOpcode( WorldPacket & recv_data );
void HandleRaidReadyCheckOpcode( WorldPacket & recv_data ); void HandleRaidReadyCheckOpcode( WorldPacket & recv_data );
void HandleRaidReadyCheckFinishOpcode( WorldPacket & recv_data ); void HandleRaidReadyCheckFinishedOpcode( WorldPacket & recv_data );
void HandleRaidConvertOpcode( WorldPacket & recv_data ); void HandleGroupRaidConvertOpcode( WorldPacket & recv_data );
void HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data ); void HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data );
void HandleGroupAssistantOpcode( WorldPacket & recv_data ); void HandleGroupAssistantLeaderOpcode( WorldPacket & recv_data );
void HandleGroupPromoteOpcode( WorldPacket & recv_data ); void HandlePartyAssignmentOpcode( WorldPacket & recv_data );
void HandlePetitionBuyOpcode(WorldPacket& recv_data); void HandlePetitionBuyOpcode(WorldPacket& recv_data);
void HandlePetitionShowSignOpcode(WorldPacket& recv_data); void HandlePetitionShowSignOpcode(WorldPacket& recv_data);
@ -404,7 +404,7 @@ class MANGOS_DLL_SPEC WorldSession
void HandleGuildAcceptOpcode(WorldPacket& recvPacket); void HandleGuildAcceptOpcode(WorldPacket& recvPacket);
void HandleGuildDeclineOpcode(WorldPacket& recvPacket); void HandleGuildDeclineOpcode(WorldPacket& recvPacket);
void HandleGuildInfoOpcode(WorldPacket& recvPacket); void HandleGuildInfoOpcode(WorldPacket& recvPacket);
void HandleGuildEventLogOpcode(WorldPacket& recvPacket); void HandleGuildEventLogQueryOpcode(WorldPacket& recvPacket);
void HandleGuildRosterOpcode(WorldPacket& recvPacket); void HandleGuildRosterOpcode(WorldPacket& recvPacket);
void HandleGuildPromoteOpcode(WorldPacket& recvPacket); void HandleGuildPromoteOpcode(WorldPacket& recvPacket);
void HandleGuildDemoteOpcode(WorldPacket& recvPacket); void HandleGuildDemoteOpcode(WorldPacket& recvPacket);
@ -417,14 +417,14 @@ class MANGOS_DLL_SPEC WorldSession
void HandleGuildRankOpcode(WorldPacket& recvPacket); void HandleGuildRankOpcode(WorldPacket& recvPacket);
void HandleGuildAddRankOpcode(WorldPacket& recvPacket); void HandleGuildAddRankOpcode(WorldPacket& recvPacket);
void HandleGuildDelRankOpcode(WorldPacket& recvPacket); void HandleGuildDelRankOpcode(WorldPacket& recvPacket);
void HandleGuildChangeInfoOpcode(WorldPacket& recvPacket); void HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket);
void HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket); void HandleSaveGuildEmblemOpcode(WorldPacket& recvPacket);
void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket); void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket);
void HandleTaxiQueryAvailableNodes(WorldPacket& recvPacket); void HandleTaxiQueryAvailableNodes(WorldPacket& recvPacket);
void HandleActivateTaxiOpcode(WorldPacket& recvPacket); void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
void HandleActivateTaxiFarOpcode(WorldPacket& recvPacket); void HandleActivateTaxiExpressOpcode(WorldPacket& recvPacket);
void HandleTaxiNextDestinationOpcode(WorldPacket& recvPacket); void HandleMoveSplineDoneOpcode(WorldPacket& recvPacket);
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket); void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
void HandleBankerActivateOpcode(WorldPacket& recvPacket); void HandleBankerActivateOpcode(WorldPacket& recvPacket);
@ -467,16 +467,16 @@ class MANGOS_DLL_SPEC WorldSession
void HandleAuctionPlaceBid( WorldPacket & recv_data ); void HandleAuctionPlaceBid( WorldPacket & recv_data );
void HandleAuctionListPendingSales( WorldPacket & recv_data ); void HandleAuctionListPendingSales( WorldPacket & recv_data );
void HandleGetMail( WorldPacket & recv_data ); void HandleGetMailList( WorldPacket & recv_data );
void HandleSendMail( WorldPacket & recv_data ); void HandleSendMail( WorldPacket & recv_data );
void HandleTakeMoney( WorldPacket & recv_data ); void HandleMailTakeMoney( WorldPacket & recv_data );
void HandleTakeItem( WorldPacket & recv_data ); void HandleMailTakeItem( WorldPacket & recv_data );
void HandleMarkAsRead( WorldPacket & recv_data ); void HandleMailMarkAsRead( WorldPacket & recv_data );
void HandleReturnToSender( WorldPacket & recv_data ); void HandleMailReturnToSender( WorldPacket & recv_data );
void HandleMailDelete( WorldPacket & recv_data ); void HandleMailDelete( WorldPacket & recv_data );
void HandleItemTextQuery( WorldPacket & recv_data); void HandleItemTextQuery( WorldPacket & recv_data);
void HandleMailCreateTextItem(WorldPacket & recv_data ); void HandleMailCreateTextItem(WorldPacket & recv_data );
void HandleMsgQueryNextMailtime(WorldPacket & recv_data ); void HandleQueryNextMailTime(WorldPacket & recv_data );
void HandleCancelChanneling(WorldPacket & recv_data ); void HandleCancelChanneling(WorldPacket & recv_data );
void SendItemPageInfo( ItemPrototype *itemProto ); void SendItemPageInfo( ItemPrototype *itemProto );
@ -511,14 +511,14 @@ class MANGOS_DLL_SPEC WorldSession
void HandleCancelAutoRepeatSpellOpcode(WorldPacket& recvPacket); void HandleCancelAutoRepeatSpellOpcode(WorldPacket& recvPacket);
void HandleLearnTalentOpcode(WorldPacket& recvPacket); void HandleLearnTalentOpcode(WorldPacket& recvPacket);
void HandleTalentWipeOpcode(WorldPacket& recvPacket); void HandleTalentWipeConfirmOpcode(WorldPacket& recvPacket);
void HandleUnlearnSkillOpcode(WorldPacket& recvPacket); void HandleUnlearnSkillOpcode(WorldPacket& recvPacket);
void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket); void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket);
void HandleQuestgiverStatusQueryMultipleOpcode(WorldPacket& recvPacket); void HandleQuestgiverStatusMultipleQuery(WorldPacket& recvPacket);
void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket); void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket);
void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket); void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket);
void HandleQuestgiverQuestQueryOpcode(WorldPacket& recvPacket); void HandleQuestgiverQueryQuestOpcode(WorldPacket& recvPacket);
void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket); void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket);
void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket); void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket);
void HandleQuestQueryOpcode(WorldPacket& recvPacket); void HandleQuestQueryOpcode(WorldPacket& recvPacket);
@ -526,22 +526,22 @@ class MANGOS_DLL_SPEC WorldSession
void HandleQuestLogSwapQuest(WorldPacket& recv_data ); void HandleQuestLogSwapQuest(WorldPacket& recv_data );
void HandleQuestLogRemoveQuest(WorldPacket& recv_data); void HandleQuestLogRemoveQuest(WorldPacket& recv_data);
void HandleQuestConfirmAccept(WorldPacket& recv_data); void HandleQuestConfirmAccept(WorldPacket& recv_data);
void HandleQuestComplete(WorldPacket& recv_data); void HandleQuestgiverCompleteQuest(WorldPacket& recv_data);
void HandleQuestAutoLaunch(WorldPacket& recvPacket); void HandleQuestgiverQuestAutoLaunch(WorldPacket& recvPacket);
void HandleQuestPushToParty(WorldPacket& recvPacket); void HandlePushQuestToParty(WorldPacket& recvPacket);
void HandleQuestPushResult(WorldPacket& recvPacket); void HandleQuestPushResult(WorldPacket& recvPacket);
void HandleMessagechatOpcode(WorldPacket& recvPacket); void HandleMessagechatOpcode(WorldPacket& recvPacket);
void HandleTextEmoteOpcode(WorldPacket& recvPacket); void HandleTextEmoteOpcode(WorldPacket& recvPacket);
void HandleChatIgnoredOpcode(WorldPacket& recvPacket); void HandleChatIgnoredOpcode(WorldPacket& recvPacket);
void HandleCorpseReclaimOpcode( WorldPacket& recvPacket ); void HandleReclaimCorpseOpcode( WorldPacket& recvPacket );
void HandleCorpseQueryOpcode( WorldPacket& recvPacket ); void HandleCorpseQueryOpcode( WorldPacket& recvPacket );
void HandleResurrectResponseOpcode(WorldPacket& recvPacket); void HandleResurrectResponseOpcode(WorldPacket& recvPacket);
void HandleSummonResponseOpcode(WorldPacket& recv_data); void HandleSummonResponseOpcode(WorldPacket& recv_data);
void HandleChannelJoin(WorldPacket& recvPacket); void HandleJoinChannel(WorldPacket& recvPacket);
void HandleChannelLeave(WorldPacket& recvPacket); void HandleLeaveChannel(WorldPacket& recvPacket);
void HandleChannelList(WorldPacket& recvPacket); void HandleChannelList(WorldPacket& recvPacket);
void HandleChannelPassword(WorldPacket& recvPacket); void HandleChannelPassword(WorldPacket& recvPacket);
void HandleChannelSetOwner(WorldPacket& recvPacket); void HandleChannelSetOwner(WorldPacket& recvPacket);
@ -554,17 +554,17 @@ class MANGOS_DLL_SPEC WorldSession
void HandleChannelKick(WorldPacket& recvPacket); void HandleChannelKick(WorldPacket& recvPacket);
void HandleChannelBan(WorldPacket& recvPacket); void HandleChannelBan(WorldPacket& recvPacket);
void HandleChannelUnban(WorldPacket& recvPacket); void HandleChannelUnban(WorldPacket& recvPacket);
void HandleChannelAnnounce(WorldPacket& recvPacket); void HandleChannelAnnouncements(WorldPacket& recvPacket);
void HandleChannelModerate(WorldPacket& recvPacket); void HandleChannelModerate(WorldPacket& recvPacket);
void HandleChannelRosterQuery(WorldPacket& recvPacket); void HandleChannelDisplayListQuery(WorldPacket& recvPacket);
void HandleChannelInfoQuery(WorldPacket& recvPacket); void HandleGetChannelMemberCount(WorldPacket& recvPacket);
void HandleChannelJoinNotify(WorldPacket& recvPacket); void HandleSetChannelWatch(WorldPacket& recvPacket);
void HandleCompleteCinema(WorldPacket& recvPacket); void HandleCompleteCinematic(WorldPacket& recvPacket);
void HandleNextCinematicCamera(WorldPacket& recvPacket); void HandleNextCinematicCamera(WorldPacket& recvPacket);
void HandlePageQuerySkippedOpcode(WorldPacket& recvPacket); void HandlePageQuerySkippedOpcode(WorldPacket& recvPacket);
void HandlePageQueryOpcode(WorldPacket& recvPacket); void HandlePageTextQueryOpcode(WorldPacket& recvPacket);
void HandleTutorialFlag ( WorldPacket & recv_data ); void HandleTutorialFlag ( WorldPacket & recv_data );
void HandleTutorialClear( WorldPacket & recv_data ); void HandleTutorialClear( WorldPacket & recv_data );
@ -582,24 +582,24 @@ class MANGOS_DLL_SPEC WorldSession
void HandlePetCastSpellOpcode( WorldPacket& recvPacket ); void HandlePetCastSpellOpcode( WorldPacket& recvPacket );
void HandlePetLearnTalent( WorldPacket& recvPacket ); void HandlePetLearnTalent( WorldPacket& recvPacket );
void HandleSetActionBar(WorldPacket& recv_data); void HandleSetActionBarToggles(WorldPacket& recv_data);
void HandleChangePlayerNameOpcode(WorldPacket& recv_data); void HandleCharRenameOpcode(WorldPacket& recv_data);
static void HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uint32 accountId, std::string newname); static void HandleChangePlayerNameOpcodeCallBack(QueryResult *result, uint32 accountId, std::string newname);
void HandleDeclinedPlayerNameOpcode(WorldPacket& recv_data); void HandleSetPlayerDeclinedNames(WorldPacket& recv_data);
void HandleTotemDestroy(WorldPacket& recv_data); void HandleTotemDestroyed(WorldPacket& recv_data);
//BattleGround //BattleGround
void HandleBattleGroundHelloOpcode(WorldPacket &recv_data); void HandleBattlemasterHelloOpcode(WorldPacket &recv_data);
void HandleBattleGroundJoinOpcode(WorldPacket &recv_data); void HandleBattlemasterJoinOpcode(WorldPacket &recv_data);
void HandleBattleGroundPlayerPositionsOpcode(WorldPacket& recv_data); void HandleBattleGroundPlayerPositionsOpcode(WorldPacket& recv_data);
void HandleBattleGroundPVPlogdataOpcode( WorldPacket &recv_data ); void HandlePVPLogDataOpcode( WorldPacket &recv_data );
void HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data ); void HandleBattleFieldPortOpcode( WorldPacket &recv_data );
void HandleBattleGroundListOpcode( WorldPacket &recv_data ); void HandleBattlefieldListOpcode( WorldPacket &recv_data );
void HandleBattleGroundLeaveOpcode( WorldPacket &recv_data ); void HandleLeaveBattlefieldOpcode( WorldPacket &recv_data );
void HandleBattleGroundArenaJoin( WorldPacket &recv_data ); void HandleBattlemasterJoinArena( WorldPacket &recv_data );
void HandleBattleGroundReportAFK( WorldPacket &recv_data ); void HandleReportPvPAFK( WorldPacket &recv_data );
void HandleWardenDataOpcode(WorldPacket& recv_data); void HandleWardenDataOpcode(WorldPacket& recv_data);
void HandleWorldTeleportOpcode(WorldPacket& recv_data); void HandleWorldTeleportOpcode(WorldPacket& recv_data);
@ -607,64 +607,64 @@ class MANGOS_DLL_SPEC WorldSession
void HandleRandomRollOpcode(WorldPacket& recv_data); void HandleRandomRollOpcode(WorldPacket& recv_data);
void HandleFarSightOpcode(WorldPacket& recv_data); void HandleFarSightOpcode(WorldPacket& recv_data);
void HandleSetLfgOpcode(WorldPacket& recv_data); void HandleSetLfgOpcode(WorldPacket& recv_data);
void HandleDungeonDifficultyOpcode(WorldPacket& recv_data); void HandleSetDungeonDifficultyOpcode(WorldPacket& recv_data);
void HandleMoveFlyModeChangeAckOpcode(WorldPacket& recv_data); void HandleMoveSetCanFlyAckOpcode(WorldPacket& recv_data);
void HandleLfgAutoJoinOpcode(WorldPacket& recv_data); void HandleLfgSetAutoJoinOpcode(WorldPacket& recv_data);
void HandleLfgCancelAutoJoinOpcode(WorldPacket& recv_data); void HandleLfgClearAutoJoinOpcode(WorldPacket& recv_data);
void HandleLfmAutoAddMembersOpcode(WorldPacket& recv_data); void HandleLfmSetAutoFillOpcode(WorldPacket& recv_data);
void HandleLfmCancelAutoAddmembersOpcode(WorldPacket& recv_data); void HandleLfmClearAutoFillOpcode(WorldPacket& recv_data);
void HandleLfgClearOpcode(WorldPacket& recv_data); void HandleLfgClearOpcode(WorldPacket& recv_data);
void HandleLfmSetNoneOpcode(WorldPacket& recv_data); void HandleLfmClearOpcode(WorldPacket& recv_data);
void HandleLfmSetOpcode(WorldPacket& recv_data); void HandleSetLfmOpcode(WorldPacket& recv_data);
void HandleLfgSetCommentOpcode(WorldPacket& recv_data); void HandleSetLfgCommentOpcode(WorldPacket& recv_data);
void HandleChooseTitleOpcode(WorldPacket& recv_data); void HandleSetTitleOpcode(WorldPacket& recv_data);
void HandleRealmStateRequestOpcode(WorldPacket& recv_data); void HandleRealmSplitOpcode(WorldPacket& recv_data);
void HandleTimeSyncResp(WorldPacket& recv_data); void HandleTimeSyncResp(WorldPacket& recv_data);
void HandleWhoisOpcode(WorldPacket& recv_data); void HandleWhoisOpcode(WorldPacket& recv_data);
void HandleResetInstancesOpcode(WorldPacket& recv_data); void HandleResetInstancesOpcode(WorldPacket& recv_data);
// Arena Team // Arena Team
void HandleInspectArenaStatsOpcode(WorldPacket& recv_data); void HandleInspectArenaTeamsOpcode(WorldPacket& recv_data);
void HandleArenaTeamQueryOpcode(WorldPacket& recv_data); void HandleArenaTeamQueryOpcode(WorldPacket& recv_data);
void HandleArenaTeamRosterOpcode(WorldPacket& recv_data); void HandleArenaTeamRosterOpcode(WorldPacket& recv_data);
void HandleArenaTeamAddMemberOpcode(WorldPacket& recv_data); void HandleArenaTeamInviteOpcode(WorldPacket& recv_data);
void HandleArenaTeamInviteAcceptOpcode(WorldPacket& recv_data); void HandleArenaTeamAcceptOpcode(WorldPacket& recv_data);
void HandleArenaTeamInviteDeclineOpcode(WorldPacket& recv_data); void HandleArenaTeamDeclineOpcode(WorldPacket& recv_data);
void HandleArenaTeamLeaveOpcode(WorldPacket& recv_data); void HandleArenaTeamLeaveOpcode(WorldPacket& recv_data);
void HandleArenaTeamRemoveFromTeamOpcode(WorldPacket& recv_data); void HandleArenaTeamRemoveOpcode(WorldPacket& recv_data);
void HandleArenaTeamDisbandOpcode(WorldPacket& recv_data); void HandleArenaTeamDisbandOpcode(WorldPacket& recv_data);
void HandleArenaTeamPromoteToCaptainOpcode(WorldPacket& recv_data); void HandleArenaTeamLeaderOpcode(WorldPacket& recv_data);
void HandleAreaSpiritHealerQueryOpcode(WorldPacket& recv_data); void HandleAreaSpiritHealerQueryOpcode(WorldPacket& recv_data);
void HandleAreaSpiritHealerQueueOpcode(WorldPacket& recv_data); void HandleAreaSpiritHealerQueueOpcode(WorldPacket& recv_data);
void HandleDismountOpcode(WorldPacket& recv_data); void HandleCancelMountAuraOpcode(WorldPacket& recv_data);
void HandleSelfResOpcode(WorldPacket& recv_data); void HandleSelfResOpcode(WorldPacket& recv_data);
void HandleReportSpamOpcode(WorldPacket& recv_data); void HandleComplainOpcode(WorldPacket& recv_data);
void HandleRequestPetInfoOpcode(WorldPacket& recv_data); void HandleRequestPetInfoOpcode(WorldPacket& recv_data);
// Socket gem // Socket gem
void HandleSocketOpcode(WorldPacket& recv_data); void HandleSocketOpcode(WorldPacket& recv_data);
void HandleCancelTempItemEnchantmentOpcode(WorldPacket& recv_data); void HandleCancelTempEnchantmentOpcode(WorldPacket& recv_data);
void HandleChannelEnableVoiceOpcode(WorldPacket & recv_data); void HandleChannelVoiceOnOpcode(WorldPacket & recv_data);
void HandleVoiceSettingsOpcode(WorldPacket& recv_data); void HandleVoiceSessionEnableOpcode(WorldPacket& recv_data);
void HandleChannelVoiceChatQuery(WorldPacket& recv_data); void HandleSetActiveVoiceChannel(WorldPacket& recv_data);
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recv_data); void HandleSetTaxiBenchmarkOpcode(WorldPacket& recv_data);
// Guild Bank // Guild Bank
void HandleGuildBankGetRights(WorldPacket& recv_data); void HandleGuildPermissions(WorldPacket& recv_data);
void HandleGuildBankGetMoneyAmount(WorldPacket& recv_data); void HandleGuildBankMoneyWithdrawn(WorldPacket& recv_data);
void HandleGuildBankQuery(WorldPacket& recv_data); void HandleGuildBankerActivate(WorldPacket& recv_data);
void HandleGuildBankTabColon(WorldPacket& recv_data); void HandleGuildBankQueryTab(WorldPacket& recv_data);
void HandleGuildBankLog(WorldPacket& recv_data); void HandleGuildBankLogQuery(WorldPacket& recv_data);
void HandleGuildBankDeposit(WorldPacket& recv_data); void HandleGuildBankDepositMoney(WorldPacket& recv_data);
void HandleGuildBankWithdraw(WorldPacket& recv_data); void HandleGuildBankWithdrawMoney(WorldPacket& recv_data);
void HandleGuildBankDepositItem(WorldPacket& recv_data); void HandleGuildBankSwapItems(WorldPacket& recv_data);
void HandleGuildBankModifyTab(WorldPacket& recv_data); void HandleGuildBankUpdateTab(WorldPacket& recv_data);
void HandleGuildBankBuyTab(WorldPacket& recv_data); void HandleGuildBankBuyTab(WorldPacket& recv_data);
void HandleGuildBankTabText(WorldPacket& recv_data); void HandleQueryGuildBankTabText(WorldPacket& recv_data);
void HandleGuildBankSetTabText(WorldPacket& recv_data); void HandleSetGuildBankTabText(WorldPacket& recv_data);
// Calendar // Calendar
void HandleCalendarGetCalendar(WorldPacket& recv_data); void HandleCalendarGetCalendar(WorldPacket& recv_data);
@ -687,7 +687,7 @@ class MANGOS_DLL_SPEC WorldSession
void HandleAlterAppearance(WorldPacket& recv_data); void HandleAlterAppearance(WorldPacket& recv_data);
void HandleRemoveGlyph(WorldPacket& recv_data); void HandleRemoveGlyph(WorldPacket& recv_data);
void HandleCharCustomize(WorldPacket& recv_data); void HandleCharCustomize(WorldPacket& recv_data);
void HandleInspectAchievements(WorldPacket& recv_data); void HandleQueryInspectAchievements(WorldPacket& recv_data);
private: private:
// private trade methods // private trade methods
void moveItems(Item* myItems[], Item* hisItems[]); void moveItems(Item* myItems[], Item* hisItems[]);

View file

@ -1117,7 +1117,6 @@ Rate.Talent = 1
Rate.Reputation.Gain = 1 Rate.Reputation.Gain = 1
Rate.Reputation.LowLevel.Kill = 1 Rate.Reputation.LowLevel.Kill = 1
Rate.Reputation.LowLevel.Quest = 1 Rate.Reputation.LowLevel.Quest = 1
Rate.InstanceResetTime = 1 Rate.InstanceResetTime = 1
SkillGain.Crafting = 1 SkillGain.Crafting = 1
SkillGain.Defense = 1 SkillGain.Defense = 1
@ -1139,7 +1138,6 @@ Death.CorpseReclaimDelay.PvE = 1
Death.Bones.World = 1 Death.Bones.World = 1
Death.Bones.BattlegroundOrArena = 1 Death.Bones.BattlegroundOrArena = 1
################################################################################################################### ###################################################################################################################
# BATTLEGROUND CONFIG # BATTLEGROUND CONFIG
# #
@ -1182,7 +1180,6 @@ Battleground.InvitationType = 0
BattleGround.PrematureFinishTimer = 300000 BattleGround.PrematureFinishTimer = 300000
BattleGround.PremadeGroupWaitForMatch = 1800000 BattleGround.PremadeGroupWaitForMatch = 1800000
################################################################################################################### ###################################################################################################################
# ARENA CONFIG # ARENA CONFIG
# #
@ -1232,7 +1229,6 @@ Arena.QueueAnnouncer.Enable = 0
Arena.ArenaSeason.ID = 1 Arena.ArenaSeason.ID = 1
Arena.ArenaSeason.InProgress = 1 Arena.ArenaSeason.InProgress = 1
################################################################################################################### ###################################################################################################################
# NETWORK CONFIG # NETWORK CONFIG
# #

View file

@ -407,7 +407,7 @@ bool AuthSocket::_HandleLogonChallenge()
{ {
///- If the IP is 'locked', check that the player comes indeed from the correct IP address ///- If the IP is 'locked', check that the player comes indeed from the correct IP address
bool locked = false; bool locked = false;
if((*result)[2].GetUInt8() == 1) // if ip is locked if((*result)[2].GetUInt8() == 1) // if ip is locked
{ {
DEBUG_LOG("[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), (*result)[3].GetString()); DEBUG_LOG("[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), (*result)[3].GetString());
DEBUG_LOG("[AuthChallenge] Player address is '%s'", GetRemoteAddress().c_str()); DEBUG_LOG("[AuthChallenge] Player address is '%s'", GetRemoteAddress().c_str());
@ -466,15 +466,15 @@ bool AuthSocket::_HandleLogonChallenge()
///- Fill the response packet with the result ///- Fill the response packet with the result
pkt << (uint8)REALM_AUTH_SUCCESS; pkt << (uint8)REALM_AUTH_SUCCESS;
// B may be calculated < 32B so we force minnimal length to 32B // B may be calculated < 32B so we force minimal length to 32B
pkt.append(B.AsByteArray(32), 32); // 32 bytes pkt.append(B.AsByteArray(32), 32); // 32 bytes
pkt << (uint8)1; pkt << (uint8)1;
pkt.append(g.AsByteArray(), 1); pkt.append(g.AsByteArray(), 1);
pkt << (uint8)32; pkt << (uint8)32;
pkt.append(N.AsByteArray(), 32); pkt.append(N.AsByteArray(), 32);
pkt.append(s.AsByteArray(), s.GetNumBytes()); // 32 bytes pkt.append(s.AsByteArray(), s.GetNumBytes());// 32 bytes
pkt.append(unk3.AsByteArray(), 16); pkt.append(unk3.AsByteArray(), 16);
pkt << (uint8)0; // Added in 1.12.x client branch pkt << (uint8)0; // security flags (0x0...0x04)
uint8 secLevel = (*result)[4].GetUInt8(); uint8 secLevel = (*result)[4].GetUInt8();
_accountSecurityLevel = secLevel <= SEC_ADMINISTRATOR ? AccountTypes(secLevel) : SEC_ADMINISTRATOR; _accountSecurityLevel = secLevel <= SEC_ADMINISTRATOR ? AccountTypes(secLevel) : SEC_ADMINISTRATOR;
@ -488,7 +488,7 @@ bool AuthSocket::_HandleLogonChallenge()
} }
delete result; delete result;
} }
else //no account else // no account
{ {
pkt<< (uint8) REALM_AUTH_NO_MATCH; pkt<< (uint8) REALM_AUTH_NO_MATCH;
} }
@ -553,7 +553,7 @@ bool AuthSocket::_HandleLogonProof()
DEBUG_LOG("\n[AuthChallenge] Found precached patch info for patch %s",tmp); DEBUG_LOG("\n[AuthChallenge] Found precached patch info for patch %s",tmp);
} }
else else
{ //calculate patch md5 { // calculate patch md5
printf("\n[AuthChallenge] Patch info for %s was not cached.",tmp); printf("\n[AuthChallenge] Patch info for %s was not cached.",tmp);
PatchesCache.LoadPatchMD5(tmp); PatchesCache.LoadPatchMD5(tmp);
PatchesCache.GetHash(tmp,(uint8*)&xferh.md5); PatchesCache.GetHash(tmp,(uint8*)&xferh.md5);
@ -869,9 +869,9 @@ bool AuthSocket::_HandleRealmList()
uint8 lock = (i->second.allowedSecurityLevel > _accountSecurityLevel) ? 1 : 0; uint8 lock = (i->second.allowedSecurityLevel > _accountSecurityLevel) ? 1 : 0;
pkt << i->second.icon; // realm type pkt << i->second.icon; // realm type
pkt << lock; // if 1, then realm locked pkt << lock; // if 1, then realm locked
pkt << i->second.color; // if 2, then realm is offline pkt << i->second.color; // if 2, then realm is offline
pkt << i->first; pkt << i->first;
pkt << i->second.address; pkt << i->second.address;
pkt << i->second.populationLevel; pkt << i->second.populationLevel;
@ -921,7 +921,7 @@ bool AuthSocket::_HandleXferCancel()
DEBUG_LOG("Entering _HandleXferCancel"); DEBUG_LOG("Entering _HandleXferCancel");
///- Close and delete the socket ///- Close and delete the socket
ibuf.Remove(1); //clear input buffer ibuf.Remove(1); // clear input buffer
SetCloseAndDelete(); SetCloseAndDelete();
@ -941,7 +941,7 @@ bool AuthSocket::_HandleXferAccept()
} }
///- Launch a PatcherRunnable thread, starting at the begining of the patch file ///- Launch a PatcherRunnable thread, starting at the begining of the patch file
ibuf.Remove(1); //clear input buffer ibuf.Remove(1); // clear input buffer
fseek(pPatch,0,0); fseek(pPatch,0,0);
ACE_Based::Thread u(*new PatcherRunnable(this)); ACE_Based::Thread u(*new PatcherRunnable(this));
@ -1023,7 +1023,7 @@ void Patcher::LoadPatchesInfo()
WIN32_FIND_DATA fil; WIN32_FIND_DATA fil;
HANDLE hFil=FindFirstFile("./patches/*.mpq",&fil); HANDLE hFil=FindFirstFile("./patches/*.mpq",&fil);
if(hFil==INVALID_HANDLE_VALUE) if(hFil==INVALID_HANDLE_VALUE)
return; //no patches were found return; // no patches were found
do do
{ {

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7910" #define REVISION_NR "7911"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__