rendered paste bodyIndex: src/game/AuctionHouse.cpp===================================================================--- src/game/AuctionHouse.cpp (revision 3621)+++ src/game/AuctionHouse.cpp (working copy)@@ -26,10 +26,10 @@ #include "UpdateMask.h" #include "AuctionHouseObject.h" -//pls DO NOT use iterator++, because it is slower than ++iterator!!!+//please DO NOT use iterator++, because it is slower than ++iterator!!! //post-incrementation is always slowlier than pre-incrementation ! -//void called when player click on auctionhouse npc+//void called when player click on auctioneer npc void WorldSession::HandleAuctionHelloOpcode( WorldPacket & recv_data ) { CHECK_PACKET_SIZE(recv_data,8);Index: src/game/BattleGround.cpp===================================================================--- src/game/BattleGround.cpp (revision 3621)+++ src/game/BattleGround.cpp (working copy)@@ -1137,7 +1137,7 @@ break; } MapManager::Instance().GetMap(RegenBonus1->GetMapId(), RegenBonus1)->Remove(RegenBonus1, false);- RegenBonus1Spawn[0] = 3*60*1000; // 3 minutes+ RegenBonus1Spawn[0] = 3*60*1000; // 3 minutes RegenBonus1Spawn[1] = 0; SpellId = 23493; break;@@ -1148,7 +1148,7 @@ break; } MapManager::Instance().GetMap(RegenBonus2->GetMapId(), RegenBonus2)->Remove(RegenBonus2, false);- RegenBonus2Spawn[0] = 3*60*1000; // 3 minutes+ RegenBonus2Spawn[0] = 3*60*1000; // 3 minutes RegenBonus2Spawn[1] = 0; SpellId = 23493; break;Index: src/game/Chat.cpp===================================================================--- src/game/Chat.cpp (revision 3621)+++ src/game/Chat.cpp (working copy)@@ -32,6 +32,8 @@ LanguageDesc lang_description[LANGUAGES_COUNT] = {+ { LANG_UNIVERSAL2, 0, 0 },+ { LANG_GLOBAL, 0, 0 }, { LANG_UNIVERSAL, 0, 0 }, { LANG_ORCISH, 669, SKILL_LANG_ORCISH }, { LANG_DARNASSIAN, 671, SKILL_LANG_DARNASSIAN },Index: src/game/ChatHandler.cpp===================================================================--- src/game/ChatHandler.cpp (revision 3621)+++ src/game/ChatHandler.cpp (working copy)@@ -256,8 +256,6 @@ } } break; -- default: sLog.outError("CHAT: unknown msg type %u, lang: %u", type, lang); }Index: src/game/debugcmds.cpp===================================================================--- src/game/debugcmds.cpp (revision 3621)+++ src/game/debugcmds.cpp (working copy)@@ -50,6 +50,7 @@ { if(!args) return false;+ char* px = strtok((char*)args, " "); if(!px) return false;@@ -60,17 +61,14 @@ data << (uint32)133; data << uint8(2); data << failnum;- m_session->SendPacket(&data);- //char buf[256];- //FillSystemMessageData(&data, m_session, buf); return true; } bool ChatHandler::HandleSetPoiCommand(const char* args) {- Player * pPlayer = m_session->GetPlayer();+ Player *pPlayer = m_session->GetPlayer(); Unit* target = getSelectedUnit(); if(!target) {@@ -100,40 +98,24 @@ bool ChatHandler::HandleSendItemErrorMsg(const char* args) { uint8 error_msg = atol((char*)args);- if ( error_msg > 0 )- {- // guess size- WorldPacket data(SMSG_INVENTORY_CHANGE_FAILURE, (30));- data << error_msg;- data << uint64(0);- data << uint64(0);- data << uint8(0);- m_session->SendPacket( &data );- return true;- }- return false;+ if(error_msg >= 0)+ m_session->GetPlayer()->SendEquipError(error_msg, 0, 0);+ return true; } bool ChatHandler::HandleSendQuestPartyMsgCommand(const char* args) { uint32 msg = atol((char*)args);- if ( msg >= 0 )- {- WorldPacket data( MSG_QUEST_PUSH_RESULT, (8+4+1) );- data << m_session->GetPlayer()->GetGUID();- data << uint32(msg);- data << uint8(0);- m_session->SendPacket(&data);- }+ if (msg >= 0)+ m_session->GetPlayer()->SendPushToPartyResponse(m_session->GetPlayer(), msg); return true; } bool ChatHandler::HandleSendQuestInvalidMsgCommand(const char* args) {- Player * pPlayer = m_session->GetPlayer(); uint32 msg = atol((char*)args);- if ( msg >= 0 )- pPlayer->SendCanTakeQuestResponse( msg );+ if (msg >= 0)+ m_session->GetPlayer()->SendCanTakeQuestResponse(msg); return true; } @@ -183,7 +165,6 @@ if (item && item->GetState() == state) PSendSysMessage("bag: 255 slot: %d guid: %d owner: %d", item->GetSlot(), item->GetGUIDLow(), GUID_LOPART(item->GetOwnerGUID())); }- } } }Index: src/game/Guild.cpp===================================================================--- src/game/Guild.cpp (revision 3621)+++ src/game/Guild.cpp (working copy)@@ -41,7 +41,6 @@ CreatedYear = 0; CreatedMonth = 0; CreatedDay = 0;- } Guild::~Guild()Index: src/game/GuildHandler.cpp===================================================================--- src/game/GuildHandler.cpp (revision 3621)+++ src/game/GuildHandler.cpp (working copy)@@ -788,7 +788,6 @@ GetPlayer()->SetGuildIdInvited(0); GetPlayer()->SetInGuild(0);- } void WorldSession::HandleGuildInfoOpcode(WorldPacket& recvPacket)@@ -824,7 +823,6 @@ if(!guild) return; guild->Roster(this);- } void WorldSession::HandleGuildPromoteOpcode(WorldPacket& recvPacket)@@ -1404,7 +1402,6 @@ } guild->SetGINFO(GINFO);- } void WorldSession::HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket)Index: src/game/Level0.cpp===================================================================--- src/game/Level0.cpp (revision 3621)+++ src/game/Level0.cpp (working copy)@@ -202,7 +202,6 @@ } SendSysMessage(itr->second->GetName());- } } @@ -301,9 +300,8 @@ bool ChatHandler::HandlePasswordCommand(const char* args) { if(!*args)- { return false;- }+ char *old_pass = strtok ((char*)args, " "); char *new_pass = strtok (NULL, " "); char *new_pass_c = strtok (NULL, " ");Index: src/game/Level1.cpp===================================================================--- src/game/Level1.cpp (revision 3621)+++ src/game/Level1.cpp (working copy)@@ -32,7 +32,6 @@ #include "RedZoneDistrict.h" #include "Transports.h" - bool ChatHandler::HandleSayCommand(const char* args) { uint64 guid = m_session->GetPlayer()->GetSelection(); @@ -616,7 +615,6 @@ bool ChatHandler::HandleModifyFactionCommand(const char* args) {- uint32 factionid; uint32 flag; uint32 npcflag;@@ -638,7 +636,7 @@ factionid = chr->getFaction(); flag = chr->GetUInt32Value(UNIT_FIELD_FLAGS); npcflag = chr->GetUInt32Value(UNIT_NPC_FLAGS);- dyflag = chr->GetUInt32Value(UNIT_DYNAMIC_FLAGS);+ dyflag = chr->GetUInt32Value(UNIT_DYNAMIC_FLAGS); PSendSysMessage(LANG_CURRENT_FACTION,chr->GetGUIDLow(),factionid,flag,npcflag,dyflag); } return true;@@ -652,7 +650,7 @@ factionid = atoi(pfactionid); - char* pflag = strtok(NULL, " ");+ char *pflag = strtok(NULL, " "); if (!pflag) flag = chr->GetUInt32Value(UNIT_FIELD_FLAGS); else@@ -693,7 +691,6 @@ bool ChatHandler::HandleModifySpellCommand(const char* args) {- WorldPacket data; char* pspellflatid = strtok((char*)args, " ");@@ -747,6 +744,9 @@ bool ChatHandler::HandleModifyTalentCommand (const char* args) {+ if (!*args)+ return false;+ int tp = atoi((char*)args); if (tp>0) {@@ -1330,7 +1330,6 @@ sLog.outDetail(LANG_CURRENT_MONEY, moneyuser, addmoney, newmoney); if(newmoney <= 0 ) {- PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, chr->GetName()); char buf[256];@@ -1342,7 +1341,6 @@ } else {- PSendSysMessage(LANG_YOU_TAKE_MONEY, abs(addmoney), chr->GetName()); char buf[256];@@ -1355,7 +1353,6 @@ } else {- PSendSysMessage(LANG_YOU_GIVE_MONEY, addmoney, chr->GetName()); char buf[256];Index: src/game/Level2.cpp===================================================================--- src/game/Level2.cpp (revision 3621)+++ src/game/Level2.cpp (working copy)@@ -39,7 +39,6 @@ bool ChatHandler::HandleTargetObjectCommand(const char* args) {- Player* pl = m_session->GetPlayer(); QueryResult *result; @@ -962,7 +961,6 @@ //pCreature->SaveToDB(); -- obsolete sDatabase.PExecuteLog("UPDATE `creature_template` SET `faction` = '%u' WHERE `entry` = '%u'", factionId, pCreature->GetEntry()); - return true; } @@ -1787,7 +1785,6 @@ // Free memory delete result2; }- } sLog.outDebug("DEBUG: HandleWpModifyCommand - Parameters parsed - now execute the command");Index: src/game/Level3.cpp===================================================================--- src/game/Level3.cpp (revision 3621)+++ src/game/Level3.cpp (working copy)@@ -2231,7 +2231,6 @@ bool ChatHandler::HandleLinkGraveCommand(const char* args) {- if(!*args) return false; @@ -2350,7 +2349,6 @@ bool ChatHandler::HandleSpawnTransportCommand(const char* args) {- return true; } @@ -2637,8 +2635,6 @@ bool ChatHandler::HandleHideAreaCommand(const char* args) {- WorldPacket data;- if (!*args) return false; @@ -3107,10 +3103,9 @@ // set UNIT_FIELD_BYTES_1 to init state but preserve m_form value player->SetUInt32Value(UNIT_FIELD_BYTES_1, player->m_form<<16 | unitfield ); - player->SetUInt32Value(UNIT_FIELD_BYTES_2, 0x2800 );// 0x2800, 0x2801 2.0.8...+ player->SetUInt32Value(UNIT_FIELD_BYTES_2, 0x2800 ); // 0x2800, 0x2801 2.0.8... player->SetUInt32Value(UNIT_FIELD_FLAGS , UNIT_FLAG_NONE | UNIT_FLAG_UNKNOWN1 ); - //player->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO); // wrong... //-1 is default value player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1)); Index: src/game/Opcodes.h===================================================================--- src/game/Opcodes.h (revision 3621)+++ src/game/Opcodes.h (working copy)@@ -884,8 +884,8 @@ CMSG_MOVE_FLY_MODE_CHANGE_ACK = 837, // movement related, fly on/off ack CMSG_MOVE_FLY_STATE_CHANGE = 838, // movement related, fly start/stop(land) ack, may be MSG CMSG_SOCKET_ITEM = 839, // click on "Socket Gems" button in Jewelcrafting UI, contains uint64 item guid + 3 x uint64 gems guid's- // 840- SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32(5)+uint16(0)+uint32(9) You not in arena team that size+ // 840, CMSG?+ SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32 command, name1, name2, uint32 errorcode // 842 CMSG_ARENA_TEAM_QUERY = 843, SMSG_ARENA_TEAM_QUERY_RESPONSE = 844,@@ -910,7 +910,7 @@ CMSG_LFM_UNSET_AUTOADD = 863, CMSG_LFG_INVITE_ACCEPT = 864, CMSG_LFG_INVITE_CANCEL = 865,- // 866+ // 866, CMSG? CMSG_LOOKING_FOR_GROUP_CLEAR = 867, CMSG_SET_LOOKING_FOR_NONE = 868, CMSG_SET_LOOKING_FOR_MORE = 869,Index: src/game/Player.cpp===================================================================--- src/game/Player.cpp (revision 3621)+++ src/game/Player.cpp (working copy)@@ -340,7 +340,6 @@ SetUInt32Value(UNIT_FIELD_BYTES_2, ( 0x28 << 8 ) ); // players - 0x2800, 0x2801, units - 0x1001 SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_UNKNOWN1 ); - //SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO); // wrong... //-1 is default value SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1)); @@ -1228,7 +1227,7 @@ return; // don't let enter battlegrounds without assigned battleground id (for example through areatrigger)...- if(!InBattleGround() && mEntry->map_type == MAP_BATTLEGROUND)+ if(!InBattleGround() && mEntry->map_type == MAP_BATTLEGROUND && !GetSession()->GetSecurity()) return; QueryResult *result = loginDatabase.PQuery("SELECT `tbc` FROM `account` WHERE `id`='%u'", GetSession()->GetAccountId());@@ -2060,11 +2059,12 @@ data << uint16(itr->first); time_t cooldown = 0;- if(itr->second.end > time(NULL))- cooldown = (itr->second.end-time(NULL))*1000;+ time_t curTime = time(NULL);+ if(itr->second.end > curTime)+ cooldown = (itr->second.end-curTime)*1000; - data << uint16(itr->second.itemid);- data << uint16(sEntry->Category);+ data << uint16(itr->second.itemid); // cast item id+ data << uint16(sEntry->Category); // spell category if(sEntry->Category) // may be wrong, but anyway better than nothing... { data << uint32(0);Index: src/game/QuestHandler.cpp===================================================================--- src/game/QuestHandler.cpp (revision 3621)+++ src/game/QuestHandler.cpp (working copy)@@ -411,11 +411,7 @@ Player *pPlayer = ObjectAccessor::Instance().FindPlayer(guid); if( pPlayer ) {- WorldPacket data( MSG_QUEST_PUSH_RESULT, (8+4+1) );- data << guid;- data << uint32( QUEST_PARTY_MSG_SHARING_QUEST );- data << uint8(0);- _player->GetSession()->SendPacket(&data);+ _player->SendPushToPartyResponse(pPlayer, QUEST_PARTY_MSG_SHARING_QUEST); if( _player->GetDistanceSq( pPlayer ) > 100 ) {Index: src/game/SharedDefines.h===================================================================--- src/game/SharedDefines.h (revision 3621)+++ src/game/SharedDefines.h (working copy)@@ -179,6 +179,7 @@ enum Language {+ LANG_UNIVERSAL2 = -1, // used by addons?, may be LANG_ADDON? LANG_GLOBAL = 0, LANG_UNIVERSAL = 0, LANG_ORCISH = 1,@@ -390,12 +391,13 @@ GAMEOBJECT_TYPE_FLAGSTAND = 24, GAMEOBJECT_TYPE_FISHINGHOLE = 25, GAMEOBJECT_TYPE_FLAGDROP = 26,- // Custom gametypes, can create problems at sending to client,- GAMEOBJECT_TYPE_CUSTOM_TELEPORTER = 27,+ GAMEOBJECT_TYPE_MINI_GAME = 27, GAMEOBJECT_TYPE_LOTTERY_KIOSK = 28, GAMEOBJECT_TYPE_CAPTURE_POINT = 29, GAMEOBJECT_TYPE_AURA_GENERATOR = 30,- GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31+ GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31,+ // Custom gametypes, can create problems at sending to client,+ GAMEOBJECT_TYPE_CUSTOM_TELEPORTER = 32, }; enum TextEmoteIndex: src/game/Spell.cpp===================================================================--- src/game/Spell.cpp (revision 3621)+++ src/game/Spell.cpp (working copy)@@ -2577,10 +2577,12 @@ // prevent disenchanting in trade slot if( m_targets.m_itemTarget->GetOwnerGUID() != m_caster->GetGUID() )- return (uint8)SPELL_FAILED_CANT_BE_DISENCHANTED;+ return SPELL_FAILED_CANT_BE_DISENCHANTED; uint32 item_quality = m_targets.m_itemTarget->GetProto()->Quality; // 2.0.x addon: Check player enchanting level agains the item desenchanting requirements uint32 item_disenchantskilllevel = m_targets.m_itemTarget->GetProto()->RequiredDisenchantSkill;+ if (item_disenchantskilllevel == uint32(-1))+ return SPELL_FAILED_CANT_BE_DISENCHANTED; if (item_disenchantskilllevel > p_caster->GetSkillValue(SKILL_ENCHANTING)) return SPELL_FAILED_LOW_CASTLEVEL; if(item_quality > 4 || item_quality < 2)Index: src/game/SpellEffects.cpp===================================================================--- src/game/SpellEffects.cpp (revision 3621)+++ src/game/SpellEffects.cpp (working copy)@@ -54,7 +54,7 @@ &Spell::EffectInstaKill, // 1 SPELL_EFFECT_INSTAKILL &Spell::EffectSchoolDMG, // 2 SPELL_EFFECT_SCHOOL_DAMAGE &Spell::EffectDummy, // 3 SPELL_EFFECT_DUMMY- &Spell::EffectNULL, // 4 SPELL_EFFECT_PORTAL_TELEPORT unused+ &Spell::EffectNULL, // 4 SPELL_EFFECT_PORTAL_TELEPORT unused &Spell::EffectTeleportUnits, // 5 SPELL_EFFECT_TELEPORT_UNITS &Spell::EffectApplyAura, // 6 SPELL_EFFECT_APPLY_AURA &Spell::EffectSchoolDMG, // 7 SPELL_EFFECT_ENVIRONMENTAL_DAMAGE@@ -595,42 +595,39 @@ if(m_caster->GetTypeId() == TYPEID_PLAYER && ((Player*)m_caster)->InBattleGround()) { BattleGround* bg = sBattleGroundMgr.GetBattleGround(((Player*)m_caster)->GetBattleGroundId());- if(bg)+ if(bg && bg->GetStatus() == STATUS_INPROGRESS) {- if(bg->GetStatus() == STATUS_INPROGRESS)+ switch(m_spellInfo->Id) {- switch(m_spellInfo->Id)- {- case 23383: // Alliance Flag Click- sLog.outDebug("Alliance Flag Click");- if(((Player*)m_caster)->GetTeam() == ALLIANCE)+ case 23383: // Alliance Flag Click+ sLog.outDebug("Alliance Flag Click");+ if(((Player*)m_caster)->GetTeam() == ALLIANCE) // Alliance Flag Returns (Event)- m_caster->CastSpell(m_caster, 23385, true, 0);- if(((Player*)m_caster)->GetTeam() == HORDE)+ m_caster->CastSpell(m_caster, 23385, true, 0);+ if(((Player*)m_caster)->GetTeam() == HORDE) // Silverwing Flag- m_caster->CastSpell(m_caster, 23335, true, 0);- break;- case 23384: // Horde Flag Click- sLog.outDebug("Horde Flag Click");- if(((Player*)m_caster)->GetTeam() == HORDE)+ m_caster->CastSpell(m_caster, 23335, true, 0);+ break;+ case 23384: // Horde Flag Click+ sLog.outDebug("Horde Flag Click");+ if(((Player*)m_caster)->GetTeam() == HORDE) // Horde Flag Returns (Event)- m_caster->CastSpell(m_caster, 23386, true, 0);- if(((Player*)m_caster)->GetTeam() == ALLIANCE)+ m_caster->CastSpell(m_caster, 23386, true, 0);+ if(((Player*)m_caster)->GetTeam() == ALLIANCE) // Warsong Flag- m_caster->CastSpell(m_caster, 23333, true, 0);- break;- case 23389: // Alliance Flag Capture- sLog.outDebug("Alliance Flag Capture");- bg->EventPlayerCapturedFlag((Player*)m_caster);- break;- case 23390: // Horde Flag Capture- sLog.outDebug("Horde Flag Capture");- bg->EventPlayerCapturedFlag((Player*)m_caster);- break;- default:- sLog.outDebug("Unknown spellid %u at BG dummy", m_spellInfo->Id);- break;- }+ m_caster->CastSpell(m_caster, 23333, true, 0);+ break;+ case 23389: // Alliance Flag Capture+ sLog.outDebug("Alliance Flag Capture");+ bg->EventPlayerCapturedFlag((Player*)m_caster);+ break;+ case 23390: // Horde Flag Capture+ sLog.outDebug("Horde Flag Capture");+ bg->EventPlayerCapturedFlag((Player*)m_caster);+ break;+ default:+ sLog.outDebug("Unknown spellid %u at BG dummy", m_spellInfo->Id);+ break; } } }@@ -835,40 +832,37 @@ if (m_caster->GetTypeId() == TYPEID_PLAYER && ((Player*)m_caster)->InBattleGround()) { BattleGround* bg = sBattleGroundMgr.GetBattleGround(((Player *)m_caster)->GetBattleGroundId());- if(bg)+ if(bg && bg->GetStatus() == STATUS_INPROGRESS) {- if(bg->GetStatus() == STATUS_INPROGRESS)+ switch(m_spellInfo->Id) {- switch(m_spellInfo->Id)- {- case 23333: // Pickup Horde Flag- bg->EventPlayerPickedUpFlag(((Player*)m_caster));- sLog.outDebug("Send Event Horde Flag Picked Up");- break;- case 23334: // Drop Horde Flag- bg->EventPlayerDroppedFlag(((Player*)m_caster));- sLog.outDebug("Drop Horde Flag");- break;- case 23335: // Pickup Alliance Flag- bg->EventPlayerPickedUpFlag(((Player*)m_caster));- sLog.outDebug("Send Event Alliance Flag Picked Up");- break;- case 23336: // Drop Alliance Flag- bg->EventPlayerDroppedFlag(((Player*)m_caster));- sLog.outDebug("Drop Alliance Flag");- break;- case 23385: // Alliance Flag Returns- bg->EventPlayerReturnedFlag(((Player*)m_caster));- sLog.outDebug("Alliance Flag Returned");- break;- case 23386: // Horde Flag Returns- bg->EventPlayerReturnedFlag(((Player*)m_caster));- sLog.outDebug("Horde Flag Returned");- break;- default:- sLog.outDebug("Unknown spellid %u in BG event", m_spellInfo->Id);- break;- }+ case 23333: // Pickup Horde Flag+ bg->EventPlayerPickedUpFlag(((Player*)m_caster));+ sLog.outDebug("Send Event Horde Flag Picked Up");+ break;+ case 23334: // Drop Horde Flag+ bg->EventPlayerDroppedFlag(((Player*)m_caster));+ sLog.outDebug("Drop Horde Flag");+ break;+ case 23335: // Pickup Alliance Flag+ bg->EventPlayerPickedUpFlag(((Player*)m_caster));+ sLog.outDebug("Send Event Alliance Flag Picked Up");+ break;+ case 23336: // Drop Alliance Flag+ bg->EventPlayerDroppedFlag(((Player*)m_caster));+ sLog.outDebug("Drop Alliance Flag");+ break;+ case 23385: // Alliance Flag Returns+ bg->EventPlayerReturnedFlag(((Player*)m_caster));+ sLog.outDebug("Alliance Flag Returned");+ break;+ case 23386: // Horde Flag Returns+ bg->EventPlayerReturnedFlag(((Player*)m_caster));+ sLog.outDebug("Horde Flag Returned");+ break;+ default:+ sLog.outDebug("Unknown spellid %u in BG event", m_spellInfo->Id);+ break; } } }@@ -1085,7 +1079,6 @@ void Spell::EffectOpenLock(uint32 i) {- if(!m_caster || m_caster->GetTypeId() != TYPEID_PLAYER) { sLog.outDebug( "WORLD: Open Lock - No Player Caster!");@@ -1162,8 +1155,7 @@ reqSkillValue = lockInfo->requiredlockskill; }- else- if(SkillId == SKILL_LOCKPICKING) // apply picklock skill to wrong target+ else if(SkillId == SKILL_LOCKPICKING) // apply picklock skill to wrong target { SendCastResult(SPELL_FAILED_BAD_TARGETS); return;@@ -1476,18 +1468,16 @@ Pet* old_wild = NULL; - {- CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));- Cell cell = RedZone::GetZone(p);- cell.data.Part.reserved = ALL_DISTRICT;- cell.SetNoCreate();+ CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));+ Cell cell = RedZone::GetZone(p);+ cell.data.Part.reserved = ALL_DISTRICT;+ cell.SetNoCreate(); - PetWithIdCheck u_check(m_caster, pet_entry);- MaNGOS::UnitSearcher<PetWithIdCheck> checker((Unit*&)old_wild, u_check);- TypeContainerVisitor<MaNGOS::UnitSearcher<PetWithIdCheck>, WorldTypeMapContainer > object_checker(checker);- CellLock<GridReadGuard> cell_lock(cell, p);- cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster));- }+ PetWithIdCheck u_check(m_caster, pet_entry);+ MaNGOS::UnitSearcher<PetWithIdCheck> checker((Unit*&)old_wild, u_check);+ TypeContainerVisitor<MaNGOS::UnitSearcher<PetWithIdCheck>, WorldTypeMapContainer > object_checker(checker);+ CellLock<GridReadGuard> cell_lock(cell, p);+ cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); if (old_wild) // find old critter, unsummon {@@ -1496,7 +1486,6 @@ } else // in another case summon new {- uint32 level = m_caster->getLevel(); // level of pet summoned using engineering item based at engineering skill level@@ -1820,7 +1809,6 @@ // if pet requested type already exist if( OldSummon ) {- if(petentry == 0 || OldSummon->GetCreatureInfo()->Entry == petentry) { // pet in corpse state can't be summoned@@ -2111,7 +2099,7 @@ } else if(uint32 ammo = ((Player*)m_caster)->GetUInt32Value(PLAYER_AMMO_ID))- ((Player*)m_caster)->DestroyItemCount( ammo , 1, true);+ ((Player*)m_caster)->DestroyItemCount(ammo, 1, true); // wand not have ammo } }@@ -2833,18 +2821,16 @@ Unit* old_critter = NULL; - {- CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));- Cell cell = RedZone::GetZone(p);- cell.data.Part.reserved = ALL_DISTRICT;- cell.SetNoCreate();+ CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));+ Cell cell = RedZone::GetZone(p);+ cell.data.Part.reserved = ALL_DISTRICT;+ cell.SetNoCreate(); - PetWithIdCheck u_check(m_caster, pet_entry);- MaNGOS::UnitSearcher<PetWithIdCheck> checker(old_critter, u_check);- TypeContainerVisitor<MaNGOS::UnitSearcher<PetWithIdCheck>, WorldTypeMapContainer > object_checker(checker);- CellLock<GridReadGuard> cell_lock(cell, p);- cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster));- }+ PetWithIdCheck u_check(m_caster, pet_entry);+ MaNGOS::UnitSearcher<PetWithIdCheck> checker(old_critter, u_check);+ TypeContainerVisitor<MaNGOS::UnitSearcher<PetWithIdCheck>, WorldTypeMapContainer > object_checker(checker);+ CellLock<GridReadGuard> cell_lock(cell, p);+ cell_lock->Visit(cell_lock, object_checker, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); if (old_critter) // find old critter, unsummon {Index: src/game/SpellHandler.cpp===================================================================--- src/game/SpellHandler.cpp (revision 3621)+++ src/game/SpellHandler.cpp (working copy)@@ -412,30 +412,39 @@ // go to end function to spell casting break; }- case GAMEOBJECT_TYPE_FLAGSTAND: //24- //BG flag click- info = obj->GetGOInfo();- if(info)- spellId = info->sound1;+ case GAMEOBJECT_TYPE_FLAGSTAND: // 24+ if(_player->InBattleGround() && // in battleground+ !_player->IsMounted() && // not mounted+ !_player->HasStealthAura() && // not stealthed+ !_player->HasInvisibilityAura()) // not invisible+ {+ //BG flag click+ info = obj->GetGOInfo();+ if(info)+ spellId = info->sound1;+ } break;- case GAMEOBJECT_TYPE_FLAGDROP: //26- //BG flag dropped- if(_player->InBattleGround())+ case GAMEOBJECT_TYPE_FLAGDROP: // 26+ if(_player->InBattleGround() && // in battleground+ !_player->IsMounted() && // not mounted+ !_player->HasStealthAura() && // not stealthed+ !_player->HasInvisibilityAura()) // not invisible {+ //BG flag dropped info = obj->GetGOInfo();- if(info->id == 179785) // Silverwing Flag+ if(info->id == 179785) // Silverwing Flag { if(_player->GetTeam() == ALLIANCE)- spellId = 23385; // Alliance Flag Returns+ spellId = 23385; // Alliance Flag Returns if(_player->GetTeam() == HORDE)- spellId = 23335; // Silverwing Flag+ spellId = 23335; // Silverwing Flag }- if(info->id == 179786) // Warsong Flag+ if(info->id == 179786) // Warsong Flag { if(_player->GetTeam() == HORDE)- spellId = 23386; // Horde Flag Returns+ spellId = 23386; // Horde Flag Returns if(_player->GetTeam() == ALLIANCE)- spellId = 23333; // Warsong Flag+ spellId = 23333; // Warsong Flag } obj->Delete(); }Index: src/game/UpdateFields.h===================================================================--- src/game/UpdateFields.h (revision 3621)+++ src/game/UpdateFields.h (working copy)@@ -297,6 +297,9 @@ PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING = 0x49B + UNIT_END, // custom PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = 0x49C + UNIT_END, // custom PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = 0x49D + UNIT_END, // Size:9+ PLAYER_FIELD_ARENA_TEAM_ID_2v2 = 0x49D + UNIT_END, // custom+ PLAYER_FIELD_ARENA_TEAM_ID_3v3 = 0x4A0 + UNIT_END, // custom+ PLAYER_FIELD_ARENA_TEAM_ID_5v5 = 0x4A3 + UNIT_END, // custom PLAYER_FIELD_HONOR_CURRENCY = 0x4A6 + UNIT_END, // Size:1 PLAYER_FIELD_ARENA_CURRENCY = 0x4A7 + UNIT_END, // Size:1 PLAYER_FIELD_MOD_MANA_REGEN = 0x4A8 + UNIT_END, // Size:1Index: src/game/Weather.cpp===================================================================--- src/game/Weather.cpp (revision 3621)+++ src/game/Weather.cpp (working copy)@@ -203,7 +203,7 @@ uint32 sound = GetSound(); WorldPacket data( SMSG_WEATHER, (4+4+4) ); - data << (uint32)m_type << (float)m_grade << (uint32)sound;+ data << (uint32)m_type << (float)m_grade << (uint32)sound << uint8(0); player->GetSession()->SendPacket( &data ); } @@ -222,7 +222,7 @@ m_grade = 0.0001; WorldPacket data( SMSG_WEATHER, (4+4+4) );- data << (uint32)m_type << (float)m_grade << (uint32)sound;+ data << (uint32)m_type << (float)m_grade << (uint32)sound << uint8(0); player->SendMessageToSet( &data, true ); ///- Log the eventIndex: src/game/WorldSession.cpp===================================================================--- src/game/WorldSession.cpp (revision 3621)+++ src/game/WorldSession.cpp (working copy)@@ -255,7 +255,7 @@ objmgr.opcodeTable[ CMSG_ACCEPT_TRADE ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleAcceptTradeOpcode ); objmgr.opcodeTable[ CMSG_BEGIN_TRADE ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleBeginTradeOpcode ); objmgr.opcodeTable[ CMSG_BUSY_TRADE ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleBusyTradeOpcode );- // sended after loguot complete+ // sended after logout complete objmgr.opcodeTable[ CMSG_CANCEL_TRADE ] = OpcodeHandler( STATUS_AUTHED, &WorldSession::HandleCancelTradeOpcode ); objmgr.opcodeTable[ CMSG_CLEAR_TRADE_ITEM ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleClearTradeItemOpcode ); objmgr.opcodeTable[ CMSG_IGNORE_TRADE ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleIgnoreTradeOpcode );@@ -435,10 +435,7 @@ objmgr.opcodeTable[ CMSG_MOVE_FLY_STATE_CHANGE ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleMoveFlyStateChangeOpcode ); objmgr.opcodeTable[ CMSG_DISMOUNT ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleDismountOpcode ); objmgr.opcodeTable[ CMSG_SELF_RES ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleSelfResOpcode );-- // Socket gem objmgr.opcodeTable[ CMSG_SOCKET_ITEM ] = OpcodeHandler( STATUS_LOGGEDIN, &WorldSession::HandleSocketOpcode );- } void WorldSession::SizeError(WorldPacket const& packet, uint32 size) const@@ -1149,6 +1146,7 @@ sLog.outDebug("CMSG_REALM_STATE_REQUEST"); uint32 unk;+ std::string unk_str = "01/01/01"; recv_data >> unk; WorldPacket data(SMSG_REALM_STATE_RESPONSE, 17);@@ -1157,9 +1155,7 @@ // 0x0 realm normal // 0x1 realm split // 0x2 realm split pending- data << uint16(0x3130) << uint8(0x2F);- data << uint16(0x3130) << uint8(0x2F);- data << uint16(0x3130) << uint8(0x00);+ data << unk_str; SendPacket(&data); sLog.outDebug("response sent %u", unk); }Index: src/game/WorldSession.h===================================================================--- src/game/WorldSession.h (revision 3621)+++ src/game/WorldSession.h (working copy)@@ -122,7 +122,7 @@ void SendAuctionOutbiddedMail( AuctionEntry * auction, uint32 newPrice ); void SendAuctionCancelledToBidderMail( AuctionEntry* auction ); - //Item Enchantement+ //Item Enchantment void SendEnchantmentLog(uint64 Target, uint64 Caster,uint32 ItemID,uint32 SpellID); void SendItemEnchantTimeUpdate(uint64 Playerguid, uint64 Itemguid,uint32 slot,uint32 Duration); @@ -166,7 +166,7 @@ // repair void HandleRepairItemOpcode(WorldPacket& recvPacket); - //Knockback+ // Knockback void HandleMoveKnockBackAck(WorldPacket& recvPacket); void HandleMoveTeleportAck(WorldPacket& recvPacket);