All pastes #486352 Raw Edit

Something

public cpp v1 · immutable
·published 2007-05-13 21:27 UTC
rendered paste body
Index: sql/mangos.sql===================================================================--- sql/mangos.sql	(revision 3628)+++ sql/mangos.sql	(working copy)@@ -1372,6 +1372,20 @@   `sound7` int(11) unsigned NOT NULL default '0',   `sound8` int(11) unsigned NOT NULL default '0',   `sound9` int(11) unsigned NOT NULL default '0',+  `sound10` int(11) unsigned NOT NULL default '0',+  `sound11` int(11) unsigned NOT NULL default '0',+  `sound12` int(11) unsigned NOT NULL default '0',+  `sound13` int(11) unsigned NOT NULL default '0',+  `sound14` int(11) unsigned NOT NULL default '0',+  `sound15` int(11) unsigned NOT NULL default '0',+  `sound16` int(11) unsigned NOT NULL default '0',+  `sound17` int(11) unsigned NOT NULL default '0',+  `sound18` int(11) unsigned NOT NULL default '0',+  `sound19` int(11) unsigned NOT NULL default '0',+  `sound20` int(11) unsigned NOT NULL default '0',+  `sound21` int(11) unsigned NOT NULL default '0',+  `sound22` int(11) unsigned NOT NULL default '0',+  `sound23` int(11) unsigned NOT NULL default '0',   `ScriptName` varchar(100) NOT NULL default '',   PRIMARY KEY  (`entry`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Gameobject System';Index: sql/updates/3629_gameobject_template.sql===================================================================--- sql/updates/3629_gameobject_template.sql	(revision 0)+++ sql/updates/3629_gameobject_template.sql	(revision 0)@@ -0,0 +1,15 @@+ALTER TABLE `gameobject_template`+ADD COLUMN `sound10` int(11) unsigned NOT NULL default '0' AFTER `sound9`,+ADD COLUMN `sound11` int(11) unsigned NOT NULL default '0' AFTER `sound10`,+ADD COLUMN `sound12` int(11) unsigned NOT NULL default '0' AFTER `sound11`,+ADD COLUMN `sound13` int(11) unsigned NOT NULL default '0' AFTER `sound12`,+ADD COLUMN `sound14` int(11) unsigned NOT NULL default '0' AFTER `sound13`,+ADD COLUMN `sound15` int(11) unsigned NOT NULL default '0' AFTER `sound14`,+ADD COLUMN `sound16` int(11) unsigned NOT NULL default '0' AFTER `sound15`,+ADD COLUMN `sound17` int(11) unsigned NOT NULL default '0' AFTER `sound16`,+ADD COLUMN `sound18` int(11) unsigned NOT NULL default '0' AFTER `sound17`,+ADD COLUMN `sound19` int(11) unsigned NOT NULL default '0' AFTER `sound18`,+ADD COLUMN `sound20` int(11) unsigned NOT NULL default '0' AFTER `sound19`,+ADD COLUMN `sound21` int(11) unsigned NOT NULL default '0' AFTER `sound20`,+ADD COLUMN `sound22` int(11) unsigned NOT NULL default '0' AFTER `sound21`,+ADD COLUMN `sound23` int(11) unsigned NOT NULL default '0' AFTER `sound22`;Index: src/game/BattleGround.cpp===================================================================--- src/game/BattleGround.cpp	(revision 3628)+++ src/game/BattleGround.cpp	(working copy)@@ -709,10 +709,10 @@  bool BattleGround::CanStartBattleGround() {-    if(GetStatus() >= STATUS_WAIT_JOIN)     // already started or ended+    if(GetStatus() >= STATUS_WAIT_JOIN)             // already started or ended         return false; -    if(GetQueuedPlayersSize() < GetMaxPlayers())+    if(GetQueuedPlayersSize() < GetMinPlayers())    // queue is not ready yet         return false;      uint8 hordes = 0;Index: src/game/BattleGroundMgr.cpp===================================================================--- src/game/BattleGroundMgr.cpp	(revision 3628)+++ src/game/BattleGroundMgr.cpp	(working copy)@@ -206,15 +206,17 @@     (*data) << plr->GetGUID(); } -uint32 BattleGroundMgr::CreateBattleGround(uint32 bg_ID, uint32 MinPlayersPerTeam, uint32 MaxPlayersPerTeam, uint32 LevelMin, uint32 LevelMax, char* BattleGroundName, uint32 MapID, float Team1StartLocX, float Team1StartLocY, float Team1StartLocZ, float Team1StartLocO, float Team2StartLocX, float Team2StartLocY, float Team2StartLocZ, float Team2StartLocO)+uint32 BattleGroundMgr::CreateBattleGround(uint32 bg_ID, uint32 MaxPlayersPerTeam, uint32 LevelMin, uint32 LevelMax, char* BattleGroundName, uint32 MapID, float Team1StartLocX, float Team1StartLocY, float Team1StartLocZ, float Team1StartLocO, float Team2StartLocX, float Team2StartLocY, float Team2StartLocZ, float Team2StartLocO) {     // Create the BG     BattleGround *bg = new BattleGround; -    bg->SetInstanceID(bg_ID);   // temporary+    bg->SetID(bg_ID);+    bg->SetInstanceID(bg_ID);                           // temporary     bg->SetMapId(MapID);-    bg->SetMinPlayersPerTeam(MinPlayersPerTeam);+    bg->SetMinPlayersPerTeam(MaxPlayersPerTeam/2);     bg->SetMaxPlayersPerTeam(MaxPlayersPerTeam);+    bg->SetMinPlayers(MaxPlayersPerTeam);     bg->SetMaxPlayers(MaxPlayersPerTeam*2);     bg->SetName(BattleGroundName);     bg->SetTeamStartLoc(ALLIANCE, Team1StartLocX, Team1StartLocY, Team1StartLocZ, Team1StartLocO);@@ -251,8 +253,6 @@         bg->BerserkBonus2 = BerserkBonus2;     } -    bg->SetID(bg_ID);-     AddBattleGround(bg_ID, bg);     sLog.outDetail("BattleGroundMgr: Created new battleground: %u %s (Map %u, %u players per team, Levels %u-%u)", bg_ID, bg->m_Name, bg->m_MapId, bg->m_MaxPlayersPerTeam, bg->m_LevelMin, bg->m_LevelMax);     return bg_ID;@@ -279,7 +279,7 @@     HStartLoc[3] = 2.27452f;    // todo: find correct coords      sLog.outDetail("Creating battleground %s, %u-%u", bl->name, bl->minlvl, bl->maxlvl);-    CreateBattleGround(bg_ID, bl->minplayers, bl->maxplayers, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);+    CreateBattleGround(bg_ID, bl->maxplayersperteam, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);      // Create BG, WSG     bg_ID = 2;@@ -295,7 +295,7 @@     HStartLoc[3] = 3.141593f;      sLog.outDetail("Creating battleground %s, %u-%u", bl->name, bl->minlvl, bl->maxlvl);-    CreateBattleGround(bg_ID, bl->minplayers, bl->maxplayers, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);+    CreateBattleGround(bg_ID, bl->maxplayersperteam, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);      // Create BG, AB     bg_ID = 3;@@ -311,7 +311,7 @@     HStartLoc[3] = 0.263892f;   // todo: find correct coords      sLog.outDetail("Creating battleground %s, %u-%u", bl->name, bl->minlvl, bl->maxlvl);-    CreateBattleGround(bg_ID, bl->minplayers, bl->maxplayers, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);+    CreateBattleGround(bg_ID, bl->maxplayersperteam, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);      // Create BG, EotS     bg_ID = 7;@@ -327,7 +327,7 @@     HStartLoc[3] = 0.263892f;   // todo: find coords      sLog.outDetail("Creating battleground %s, %u-%u", bl->name, bl->minlvl, bl->maxlvl);-    CreateBattleGround(bg_ID, bl->minplayers, bl->maxplayers, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);+    CreateBattleGround(bg_ID, bl->maxplayersperteam, bl->minlvl, bl->maxlvl, bl->name, bl->mapid1, AStartLoc[0], AStartLoc[1], AStartLoc[2], AStartLoc[3], HStartLoc[0], HStartLoc[1], HStartLoc[2], HStartLoc[3]);      sLog.outDetail("Created initial battlegrounds."); }Index: src/game/BattleGroundMgr.h===================================================================--- src/game/BattleGroundMgr.h	(revision 3628)+++ src/game/BattleGroundMgr.h	(working copy)@@ -53,7 +53,7 @@                 return NULL;         }; -        uint32 CreateBattleGround(uint32 bg_ID, uint32 MinPlayersPerTeam, uint32 MaxPlayersPerTeam, uint32 LevelMin, uint32 LevelMax, char* BattleGroundName, uint32 MapID, float Team1StartLocX, float Team1StartLocY, float Team1StartLocZ, float Team1StartLocO, float Team2StartLocX, float Team2StartLocY, float Team2StartLocZ, float Team2StartLocO);+        uint32 CreateBattleGround(uint32 bg_ID, uint32 MaxPlayersPerTeam, uint32 LevelMin, uint32 LevelMax, char* BattleGroundName, uint32 MapID, float Team1StartLocX, float Team1StartLocY, float Team1StartLocZ, float Team1StartLocO, float Team2StartLocX, float Team2StartLocY, float Team2StartLocZ, float Team2StartLocO);          inline void AddBattleGround(uint32 ID, BattleGround* BG) { m_BattleGrounds[ID] = BG; }; Index: src/game/GameObject.h===================================================================--- src/game/GameObject.h	(revision 3628)+++ src/game/GameObject.h	(working copy)@@ -51,6 +51,20 @@     uint32  sound7;     uint32  sound8;     uint32  sound9;+    uint32  sound10;+    uint32  sound11;+    uint32  sound12;+    uint32  sound13;+    uint32  sound14;+    uint32  sound15;+    uint32  sound16;+    uint32  sound17;+    uint32  sound18;+    uint32  sound19;+    uint32  sound20;+    uint32  sound21;+    uint32  sound22;+    uint32  sound23;     char   *ScriptName; }; Index: src/game/Level3.cpp===================================================================--- src/game/Level3.cpp	(revision 3628)+++ src/game/Level3.cpp	(working copy)@@ -3104,7 +3104,7 @@         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_FLAGS , UNIT_FLAG_NONE | UNIT_FLAG_UNKNOWN1 );+        player->SetUInt32Value(UNIT_FIELD_FLAGS , UNIT_FLAG_UNKNOWN1 );                                                              //-1 is default value         player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1));Index: src/game/Opcodes.h===================================================================--- src/game/Opcodes.h	(revision 3628)+++ src/game/Opcodes.h	(working copy)@@ -854,7 +854,7 @@     // 807     SMSG_GM_SURVEY_REQUEST                          = 808, // uint32, 1 - causes client get ticket request, 2 - hide, 3 - show     MSG_SET_DUNGEON_DIFFICULTY                      = 809, // uint32+uint32+uint32-    CMSG_GM_SURVEY_RESULTS                          = 810,+    CMSG_GM_SURVEY_RESULTS                          = 810, // script function named GMSurveySubmit()     SMSG_UNKNOWN_811                                = 811, // uint32, 0x0, SMSG_INSTANCE_RESET_ACTIVATE ?     // 812     // 813Index: src/game/Player.h===================================================================--- src/game/Player.h	(revision 3628)+++ src/game/Player.h	(working copy)@@ -290,15 +290,15 @@     PLAYER_FLAGS_GHOST          = 0x00000010,     PLAYER_FLAGS_RESTING        = 0x00000020,     PLAYER_FLAGS_FFA_PVP        = 0x00000080,-    PLAYER_FLAGS_UNK            = 0x00000100,                   // 2.0.8, bg related?+    PLAYER_FLAGS_UNK            = 0x00000100,                   // show PvP in tooltip     PLAYER_FLAGS_IN_PVP         = 0x00000200,     PLAYER_FLAGS_HIDE_HELM      = 0x00000400,     PLAYER_FLAGS_HIDE_CLOAK     = 0x00000800,-    PLAYER_FLAGS_UNK1           = 0x00001000,                   //played long time-    PLAYER_FLAGS_UNK2           = 0x00002000,                   //played too long time-    PLAYER_FLAGS_UNK3           = 0x00008000,                   //strange visual effect (2.0.1)-    PLAYER_FLAGS_UNK4           = 0x00020000,                   //taxi benchmark mode (on/off) (2.0.1)-    PLAYER_UNK                  = 0x00040000,                   //2.0.8...+    PLAYER_FLAGS_UNK1           = 0x00001000,                   // played long time+    PLAYER_FLAGS_UNK2           = 0x00002000,                   // played too long time+    PLAYER_FLAGS_UNK3           = 0x00008000,                   // strange visual effect (2.0.1), looks like PLAYER_FLAGS_GHOST flag+    PLAYER_FLAGS_UNK4           = 0x00020000,                   // taxi benchmark mode (on/off) (2.0.1)+    PLAYER_UNK                  = 0x00040000,                   // 2.0.8... };  enum PlayerKnownTitlesIndex: src/game/QueryHandler.cpp===================================================================--- src/game/QueryHandler.cpp	(revision 3628)+++ src/game/QueryHandler.cpp	(working copy)@@ -131,24 +131,24 @@     data << (uint32)entry;                                  // creature entry     data << (unit ? unit->GetName() : ci->Name);            // creature name -    data << uint8(0) << uint8(0) << uint8(0);               // unk 3 x uint8+    data << uint8(0) << uint8(0) << uint8(0);               // name2, name3, name4, always empty      if (unit)         data << ((unit->isPet()) ? "Pet" : ci->SubName);    // subname     else-        data << ci->Name;+        data << ci->Name;                                   // may be it's typo? must be subname I think... -    data << ci->flag1;                                      //flags          wdbFeild7=wad flags1+    data << ci->flag1;                                      // flags          wdbFeild7=wad flags1      if (unit)-        data << (uint32)((unit->isPet()) ? 0 : ci->type);   //creatureType   wdbFeild8+        data << (uint32)((unit->isPet()) ? 0 : ci->type);   // creatureType   wdbFeild8     else         data << (uint32) ci->type; -    data << (uint32)ci->family;                             //family         wdbFeild9-    data << (uint32)(unit && unit->isPet() ? 0 : ci->rank); //rank           wdbFeild10-    data << uint32(0);                                      //unknow         wdbFeild11-    data << uint32(0);                                      //unknow         wdbFeild12+    data << (uint32)ci->family;                             // family         wdbFeild9+    data << (uint32)(unit && unit->isPet() ? 0 : ci->rank); // rank           wdbFeild10+    data << uint32(0);                                      // unknown        wdbFeild11+    data << uint32(0);                                      // unknown        wdbFeild12      if (unit)         data << unit->GetUInt32Value(UNIT_FIELD_DISPLAYID); //DisplayID      wdbFeild13@@ -175,60 +175,47 @@     const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID);                                                             // guess size     WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 150 );-    data << entryID;--    if( !info  )+    if(!info)     {         sLog.outDebug( "WORLD: CMSG_GAMEOBJECT_QUERY - Missing game object info for entry %u", entryID);--        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint64(0);-        data << uint32(0);-        data << uint16(0);-        data << uint8(0);--        data << uint64(0);                                  // Added in 1.12.x client branch-        data << uint64(0);                                  // Added in 1.12.x client branch-        data << uint64(0);                                  // Added in 1.12.x client branch-        data << uint64(0);                                  // Added in 1.12.x client branch-        data << uint8(0);                                   // Added in 1.12.x client branch-        SendPacket( &data );-        return;+        data << uint32(entryID | 0x80000000);     }--    sLog.outDetail("WORLD: CMSG_GAMEOBJECT_QUERY '%s' - Entry: %u - GUID: %u.", info->name, entryID, guid);-    -    data << (uint32)info->type;-    data << (uint32)info->displayId;-    data << info->name;-    data << uint32(0); // 2.0.3-    data << uint16(0); // 2.0.3-    data << uint32(info->sound0);-    data << uint32(info->sound1);-    data << uint32(info->sound2);-    data << uint32(info->sound3);-    data << uint32(info->sound4);-    data << uint32(info->sound5);-    data << uint32(info->sound6);-    data << uint32(info->sound7);-    data << uint32(info->sound8);-    data << uint32(info->sound9);--    data << uint64(0);-    data << uint64(0);-    data << uint64(0);--    data << uint64(0);                                      // Added in 1.12.x client branch-    data << uint64(0);                                      // Added in 1.12.x client branch-    data << uint64(0);                                      // Added in 1.12.x client branch-    data << uint64(0);                                      // Added in 1.12.x client branch+    else+    {+        sLog.outDetail("WORLD: CMSG_GAMEOBJECT_QUERY '%s' - Entry: %u - GUID: %u.", info->name, entryID, guid);+        data << entryID;+        data << (uint32)info->type;+        data << (uint32)info->displayId;+        data << info->name;+        data << uint8(0) << uint8(0) << uint8(0);               // name2, name3, name4+        data << uint8(0);                                       // 2.0.3, string+        data << uint8(0);                                       // 2.0.3, string+        data << uint8(0);                                       // 2.0.3, probably string+        data << uint32(info->sound0);+        data << uint32(info->sound1);+        data << uint32(info->sound2);+        data << uint32(info->sound3);+        data << uint32(info->sound4);+        data << uint32(info->sound5);+        data << uint32(info->sound6);+        data << uint32(info->sound7);+        data << uint32(info->sound8);+        data << uint32(info->sound9);+        data << uint32(info->sound10);+        data << uint32(info->sound11);+        data << uint32(info->sound12);+        data << uint32(info->sound13);+        data << uint32(info->sound14);+        data << uint32(info->sound15);+        data << uint32(info->sound16);+        data << uint32(info->sound17);+        data << uint32(info->sound18);+        data << uint32(info->sound19);+        data << uint32(info->sound20);+        data << uint32(info->sound21);+        data << uint32(info->sound22);+        data << uint32(info->sound23);+    }     SendPacket( &data ); } @@ -255,16 +242,15 @@     CHECK_PACKET_SIZE(recv_data,4+4+4);      uint32 textID;-    uint32 uField0, uField1;+    uint64 guid;     GossipText *pGossip;     std::string GossipStr;      recv_data >> textID;-    sLog.outDetail("WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID );+    sLog.outDetail("WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID); -    recv_data >> uField0 >> uField1;-    GetPlayer()->SetUInt32Value(UNIT_FIELD_TARGET, uField0);-    GetPlayer()->SetUInt32Value(UNIT_FIELD_TARGET + 1, uField1);+    recv_data >> guid;+    GetPlayer()->SetUInt64Value(UNIT_FIELD_TARGET, guid);      pGossip = objmgr.GetGossipText(textID); Index: src/game/SharedDefines.h===================================================================--- src/game/SharedDefines.h	(revision 3628)+++ src/game/SharedDefines.h	(working copy)@@ -395,9 +395,7 @@     GAMEOBJECT_TYPE_LOTTERY_KIOSK          = 28,     GAMEOBJECT_TYPE_CAPTURE_POINT          = 29,     GAMEOBJECT_TYPE_AURA_GENERATOR         = 30,-    GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY     = 31,-    // Custom gametypes, can create problems at sending to client,-    GAMEOBJECT_TYPE_CUSTOM_TELEPORTER      = 32,+    GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY     = 31 };  enum TextEmoteIndex: src/game/SpellHandler.cpp===================================================================--- src/game/SpellHandler.cpp	(revision 3628)+++ src/game/SpellHandler.cpp	(working copy)@@ -449,23 +449,6 @@                 obj->Delete();             }             break;-        case GAMEOBJECT_TYPE_CUSTOM_TELEPORTER:-            info = obj->GetGOInfo();-            if(info)-            {-                AreaTrigger const *at = objmgr.GetAreaTrigger( info->sound0 );-                if(at && at->IsTeleport())-                {-                    sLog.outDebug( "Teleporting player %u with coordinates X: %f Y: %f Z: %f Orientation: %f Map: %u\n",-                        _player->GetGUIDLow(), at->target_X,at->target_Y,at->target_Z,at->target_Orientation,at->target_mapId);-                    _player->TeleportTo(at->target_mapId, at->target_X,at->target_Y,at->target_Z,at->target_Orientation);-                    sLog.outDebug( "Player %u teleported by %u\n", _player->GetGUIDLow(), info->sound0);-                }-                else-                    sLog.outDebug( "Gameobject template %u (type: GAMEOBJECT_TYPE_CUSTOM_TELEPORTER(27)) have wrong areatrigger_template id %u (sound0 field) for teleportation", info->id,info->sound0);-                return;-            }-            break;         default:             sLog.outDebug( "Unknown Object Type %u\n", obj->GetUInt32Value(GAMEOBJECT_TYPE_ID));             break;Index: src/game/Unit.h===================================================================--- src/game/Unit.h	(revision 3628)+++ src/game/Unit.h	(working copy)@@ -239,25 +239,35 @@ // Value masks for UNIT_FIELD_FLAGS enum UnitFlags {-    UNIT_FLAG_NONE           = 0x00000000,+    UNIT_FLAG_UNKNOWN7       = 0x00000001,+    UNIT_FLAG_UNKNOWN8       = 0x00000002,                  // not attackable     UNIT_FLAG_DISABLE_MOVE   = 0x00000004,-    UNIT_FLAG_UNKNOWN1       = 0x00000008,                  // essential for all units..-    UNIT_FLAG_RENAME         = 0x00000010,                  // rename creature, not working in 2.0.8+    UNIT_FLAG_UNKNOWN1       = 0x00000008,                  // for all units, make unit attackable even it's friendly in some cases...+    UNIT_FLAG_RENAME         = 0x00000010,     UNIT_FLAG_RESTING        = 0x00000020,+    UNIT_FLAG_UNKNOWN9       = 0x00000040,+    UNIT_FLAG_UNKNOWN10      = 0x00000080,     UNIT_FLAG_UNKNOWN2       = 0x00000100,                  // 2.0.8-    UNIT_FLAG_UNKNOWN3       = 0x00000800,                  // in combat ?2.0.8-    UNIT_FLAG_PVP            = 0x00001000,-    UNIT_FLAG_MOUNT          = 0x00002000,+    UNIT_FLAG_UNKNOWN11      = 0x00000200,+    UNIT_FLAG_UNKNOWN12      = 0x00000400,                  // loot animation+    UNIT_FLAG_UNKNOWN3       = 0x00000800,                  // in combat?, 2.0.8+    UNIT_FLAG_PVP            = 0x00001000,                  // ok+    UNIT_FLAG_MOUNT          = 0x00002000,                  // silenced, 2.0.12     UNIT_FLAG_UNKNOWN4       = 0x00004000,                  // 2.0.8+    UNIT_FLAG_UNKNOWN13      = 0x00008000,+    UNIT_FLAG_UNKNOWN14      = 0x00010000,     UNIT_FLAG_PACIFIED       = 0x00020000,     UNIT_FLAG_DISABLE_ROTATE = 0x00040000,                  // may be it's stunned flag?     UNIT_FLAG_IN_COMBAT      = 0x00080000,+    UNIT_FLAG_UNKNOWN15      = 0x00100000,     UNIT_FLAG_DISARMED       = 0x00200000,                  // disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.     UNIT_FLAG_CONFUSED       = 0x00400000,     UNIT_FLAG_FLEEING        = 0x00800000,     UNIT_FLAG_UNKNOWN5       = 0x01000000,					// used in spell Eyes of the Beast for pet...-    UNIT_FLAG_NOT_SELECTABLE = 0x02000000,+    UNIT_FLAG_NOT_SELECTABLE = 0x02000000,                  // ok     UNIT_FLAG_SKINNABLE      = 0x04000000,+    UNIT_FLAG_UNKNOWN16      = 0x08000000,+    UNIT_FLAG_UNKNOWN17      = 0x10000000,     UNIT_FLAG_UNKNOWN6       = 0x20000000,                  // used in Feing Death spell     UNIT_FLAG_SHEATHE        = 0x40000000 };Index: src/shared/Database/DBCfmt.cpp===================================================================--- src/shared/Database/DBCfmt.cpp	(revision 3628)+++ src/shared/Database/DBCfmt.cpp	(working copy)@@ -18,7 +18,7 @@  const char AreaTableEntryfmt[]="iiinixxxxxixxxxxxxxxixxxxxx"; const char BankBagSlotPricesEntryfmt[]="ni";-const char BattlemasterListEntryfmt[]="niixxxxxxiiiiixsxxxxxxxx";+const char BattlemasterListEntryfmt[]="niixxxxxxiiiixxsxxxxxxxx"; const char ChatChannelsEntryfmt[]="iixsxxxxxxxxsxxxxxxxx";  // data not sorted (more compact store) const char ChrClassesEntryfmt[]="nxxixsxxxxxxxxxxxx"; const char ChrRacesEntryfmt[]="nxixiixxixxxxisxxxxxxxxxxxx";Index: src/shared/Database/DBCStructure.h===================================================================--- src/shared/Database/DBCStructure.h	(revision 3628)+++ src/shared/Database/DBCStructure.h	(working copy)@@ -57,8 +57,7 @@     uint32      type; // 3 - BG, 4 - arena     uint32      minlvl;     uint32      maxlvl;-    uint32      maxplayers;-    uint32      minplayers; // ???+    uint32      maxplayersperteam;     char*       name; }; Index: src/shared/Database/SQLStorage.cpp===================================================================--- src/shared/Database/SQLStorage.cpp	(revision 3628)+++ src/shared/Database/SQLStorage.cpp	(working copy)@@ -25,7 +25,7 @@  const char CreatureInfofmt[]="iiissiiiiiiiiififfiiiiififiiiiffifiiiiiiiiiiiiiiiiiiiiiiiiiiisiis"; const char CreatureDataAddonInfofmt[]="iiiiiiiiiiii";-const char GameObjectInfofmt[]="iiisiifiiiiiiiiiis";+const char GameObjectInfofmt[]="iiisiifiiiiiiiiiiiiiiiiiiiiiiiis"; const char ItemPrototypefmt[]="iiiissssiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiffiffiffiiiiiiiiiifiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisiiiiiiiiiiiiiiiiiiiiiiiiiisi"; const char PageTextfmt[]="isi"; const char SpellProcEventfmt[]="iiiiiif";