Core/Entities: Extended SpawnMask to 64 bit

This commit is contained in:
hondacrx
2018-01-06 23:43:44 -05:00
parent ff338c6532
commit befc9fcae7
16 changed files with 95 additions and 75 deletions
@@ -83,7 +83,7 @@ namespace Framework.Database
PrepareStatement(WorldStatements.INS_CREATURE, "INSERT INTO creature (guid, id , map, spawnMask, PhaseId, PhaseGroup, modelid, equipment_id, position_x, position_y, position_z, orientation, spawntimesecs, spawndist, currentwaypoint, curhealth, curmana, MovementType, npcflag, unit_flags, unit_flags2, unit_flags3, dynamicflags) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
PrepareStatement(WorldStatements.DEL_GAME_EVENT_CREATURE, "DELETE FROM game_event_creature WHERE guid = ?");
PrepareStatement(WorldStatements.DEL_GAME_EVENT_MODEL_EQUIP, "DELETE FROM game_event_model_equip WHERE guid = ?");
PrepareStatement(WorldStatements.INS_GAMEOBJECT, "INSERT INTO gameobject (guid, id, map, spawnMask, position_x, position_y, position_z, orientation, rotation0, rotation1, rotation2, rotation3, spawntimesecs, animprogress, state) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
PrepareStatement(WorldStatements.INS_GAMEOBJECT, "INSERT INTO gameobject (guid, id, map, spawnMask, PhaseId, PhaseGroup, position_x, position_y, position_z, orientation, rotation0, rotation1, rotation2, rotation3, spawntimesecs, animprogress, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
PrepareStatement(WorldStatements.INS_DISABLES, "INSERT INTO disables (entry, sourceType, flags, comment) VALUES (?, ?, ?, ?)");
PrepareStatement(WorldStatements.SEL_DISABLES, "SELECT entry FROM disables WHERE entry = ? AND sourceType = ?");
PrepareStatement(WorldStatements.DEL_DISABLES, "DELETE FROM disables WHERE entry = ? AND sourceType = ?");
+4 -8
View File
@@ -725,14 +725,10 @@ namespace Game.Chat
return false;
}
if (target.IsTypeId(TypeId.Unit))
{
int dbPhase = target.ToCreature().GetDBPhase();
if (dbPhase > 0)
handler.SendSysMessage("Target creature's PhaseId in DB: {0}", dbPhase);
else if (dbPhase < 0)
handler.SendSysMessage("Target creature's PhaseGroup in DB: {0}", Math.Abs(dbPhase));
}
if (target.GetDBPhase() > 0)
handler.SendSysMessage($"Target creature's PhaseId in DB: {target.GetDBPhase()}");
else if (target.GetDBPhase() < 0)
handler.SendSysMessage($"Target creature's PhaseGroup in DB: {Math.Abs(target.GetDBPhase())}");
string phases = "";
foreach (uint phase in target.GetPhases())
@@ -487,7 +487,7 @@ namespace Game.Chat
}
// fill the gameobject data and save to the db
obj.SaveToDB(map.GetId(), (byte)(1 << (int)map.GetSpawnMode()), player.GetPhaseMask());
obj.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
ulong spawnId = obj.GetSpawnId();
// this will generate a new guid if the object is in an instance
+6 -6
View File
@@ -86,7 +86,7 @@ namespace Game.Chat
CreatureData data = Global.ObjectMgr.GetCreatureData(target.GetSpawnId());
if (data != null)
{
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.phaseid, data.phaseGroup);
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.phaseId, data.phaseGroup);
if (data.phaseGroup != 0)
{
var _phases = target.GetPhases();
@@ -1106,15 +1106,14 @@ namespace Game.Chat
ulong guid = map.GenerateLowGuid(HighGuid.Creature);
CreatureData data = Global.ObjectMgr.NewOrExistCreatureData(guid);
data.id = id;
data.phaseMask = chr.GetPhaseMask();
data.posX = chr.GetTransOffsetX();
data.posY = chr.GetTransOffsetY();
data.posZ = chr.GetTransOffsetZ();
data.orientation = chr.GetTransOffsetO();
// @todo: add phases
Creature _creature = trans.CreateNPCPassenger(guid, data);
_creature.SaveToDB((uint)trans.GetGoInfo().MoTransport.SpawnMap, (byte)(1 << (int)map.GetSpawnMode()), chr.GetPhaseMask());
_creature.SaveToDB((uint)trans.GetGoInfo().MoTransport.SpawnMap, 1ul << (int)map.GetSpawnMode());
Global.ObjectMgr.AddCreatureToGrid(guid, data);
return true;
@@ -1124,7 +1123,8 @@ namespace Game.Chat
if (!creature.Create(map.GenerateLowGuid(HighGuid.Creature), map, chr.GetPhaseMask(), id, x, y, z, o))
return false;
creature.SaveToDB(map.GetId(), (byte)(1 << (int)map.GetSpawnMode()), chr.GetPhaseMask());
creature.CopyPhaseFrom(chr);
creature.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
ulong db_guid = creature.GetSpawnId();
+4 -4
View File
@@ -549,7 +549,7 @@ namespace Game.Chat.Commands
if (!wpCreature.Create(map.GenerateLowGuid(HighGuid.Creature), map, chr.GetPhaseMask(), 1, chr.GetPositionX(), chr.GetPositionY(), chr.GetPositionZ(), chr.GetOrientation()))
{
wpCreature.CopyPhaseFrom(chr);
wpCreature.SaveToDB(map.GetId(), (1u << (int)map.GetSpawnMode()), chr.GetPhaseMask());
wpCreature.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
// To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells();
/// @todo Should we first use "Create" then use "LoadFromDB"?
if (!wpCreature.LoadCreatureFromDB(wpCreature.GetSpawnId(), map))
@@ -762,7 +762,7 @@ namespace Game.Chat.Commands
}
wpCreature.CopyPhaseFrom(chr);
wpCreature.SaveToDB(map.GetId(), (1u << (int)map.GetSpawnMode()), chr.GetPhaseMask());
wpCreature.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
// Set "wpguid" column to the visual waypoint
stmt = DB.World.GetPreparedStatement(WorldStatements.UPD_WAYPOINT_DATA_WPGUID);
@@ -822,8 +822,8 @@ namespace Game.Chat.Commands
}
creature.CopyPhaseFrom(chr);
creature.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
creature.SaveToDB(map.GetId(), (uint)(1 << (int)map.GetSpawnMode()), chr.GetPhaseMask());
if (!creature.LoadCreatureFromDB(creature.GetSpawnId(), map))
{
handler.SendSysMessage(CypherStrings.WaypointVpNotcreated, id);
@@ -870,8 +870,8 @@ namespace Game.Chat.Commands
}
creature.CopyPhaseFrom(chr);
creature.SaveToDB(map.GetId(), 1ul << (int)map.GetSpawnMode());
creature.SaveToDB(map.GetId(), (uint)(1 << (int)map.GetSpawnMode()), chr.GetPhaseMask());
if (!creature.LoadCreatureFromDB(creature.GetSpawnId(), map))
{
handler.SendSysMessage(CypherStrings.WaypointNotcreated, id);
+1 -1
View File
@@ -278,7 +278,7 @@ namespace Game.Conditions
condMeets = player.HasTitle(ConditionValue1);
break;
case ConditionTypes.Spawnmask:
condMeets = Convert.ToBoolean((1 << (int)obj.GetMap().GetSpawnMode()) & ConditionValue1);
condMeets = Convert.ToBoolean((1ul << (int)obj.GetMap().GetSpawnMode()) & ConditionValue1);
break;
case ConditionTypes.UnitState:
if (unit != null)
+2 -1
View File
@@ -1490,7 +1490,8 @@ namespace Game
}
case ConditionTypes.Spawnmask:
{
if (cond.ConditionValue1 > (uint)SpawnMask.RaidAll)
// @todo: ConditionValue need to be extended to uint64
if ((ulong)cond.ConditionValue1 > 1ul << (int)SpawnMask.RaidAll)
{
Log.outError(LogFilter.Sql, "{0} has non existing SpawnMask in value1 ({1}), skipped.", cond.ToString(true), cond.ConditionValue1);
return false;
+7 -8
View File
@@ -724,8 +724,8 @@ namespace Game.Entities
{
SetMap(map);
if (data != null && data.phaseid != 0)
SetInPhase(data.phaseid, false, true);
if (data != null && data.phaseId != 0)
SetInPhase(data.phaseId, false, true);
if (data != null && data.phaseGroup != 0)
foreach (var ph in Global.DB2Mgr.GetPhasesForGroup(data.phaseGroup))
@@ -977,10 +977,10 @@ namespace Game.Entities
}
uint mapId = GetTransport() ? (uint)GetTransport().GetGoInfo().MoTransport.SpawnMap : GetMapId();
SaveToDB(mapId, data.spawnMask, GetPhaseMask());
SaveToDB(mapId, data.spawnMask);
}
public virtual void SaveToDB(uint mapid, uint spawnMask, uint phaseMask)
public virtual void SaveToDB(uint mapid, ulong spawnMask)
{
// update in loaded data
if (m_spawnId == 0)
@@ -1022,7 +1022,6 @@ namespace Game.Entities
// data.guid = guid must not be updated at save
data.id = GetEntry();
data.mapid = (ushort)mapid;
data.phaseMask = phaseMask;
data.displayid = displayId;
data.equipmentId = GetCurrentEquipmentId();
data.posX = GetPositionX();
@@ -1045,7 +1044,7 @@ namespace Game.Entities
data.unit_flags3 = unitFlags3;
data.dynamicflags = dynamicflags;
data.phaseid = (uint)(GetDBPhase() > 0 ? GetDBPhase() : 0);
data.phaseId = (uint)(GetDBPhase() > 0 ? GetDBPhase() : 0);
data.phaseGroup = (uint)(GetDBPhase() < 0 ? Math.Abs(GetDBPhase()) : 0);
// update in DB
@@ -1062,7 +1061,7 @@ namespace Game.Entities
stmt.AddValue(index++, GetEntry());
stmt.AddValue(index++, mapid);
stmt.AddValue(index++, spawnMask);
stmt.AddValue(index++, data.phaseid);
stmt.AddValue(index++, data.phaseId);
stmt.AddValue(index++, data.phaseGroup);
stmt.AddValue(index++, displayId);
stmt.AddValue(index++, GetCurrentEquipmentId());
@@ -1320,7 +1319,7 @@ namespace Game.Entities
m_spawnId = spawnId;
m_creatureData = data;
if (!Create(map.GenerateLowGuid(HighGuid.Creature), map, data.phaseMask, data.id, data.posX, data.posY, data.posZ, data.orientation, data))
if (!Create(map.GenerateLowGuid(HighGuid.Creature), map, PhaseMasks.Normal, data.id, data.posX, data.posY, data.posZ, data.orientation, data))
return false;
//We should set first home position, because then AI calls home movement
@@ -279,7 +279,6 @@ namespace Game.Entities
{
public uint id; // entry in creature_template
public ushort mapid;
public uint phaseMask;
public uint displayid;
public int equipmentId;
public float posX;
@@ -292,13 +291,13 @@ namespace Game.Entities
public uint curhealth;
public uint curmana;
public byte movementType;
public uint spawnMask;
public ulong spawnMask;
public ulong npcflag;
public uint unit_flags; // enum UnitFlags mask values
public uint unit_flags2; // enum UnitFlags2 mask values
public uint unit_flags3; // enum UnitFlags3 mask values
public uint dynamicflags;
public uint phaseid;
public uint phaseId;
public uint phaseGroup;
public uint ScriptId;
public bool dbData;
+10 -7
View File
@@ -846,10 +846,10 @@ namespace Game.Entities
return;
}
SaveToDB(GetMapId(), data.spawnMask, data.phaseMask);
SaveToDB(GetMapId(), data.spawnMask);
}
public void SaveToDB(uint mapid, uint spawnMask, uint phaseMask)
public void SaveToDB(uint mapid, ulong spawnMask)
{
GameObjectTemplate goI = GetGoInfo();
@@ -865,7 +865,6 @@ namespace Game.Entities
// guid = guid must not be updated at save
data.id = GetEntry();
data.mapid = (ushort)mapid;
data.phaseMask = (ushort)phaseMask;
data.posX = GetPositionX();
data.posY = GetPositionY();
data.posZ = GetPositionZ();
@@ -878,6 +877,9 @@ namespace Game.Entities
data.artKit = GetGoArtKit();
Global.ObjectMgr.NewGOData(m_spawnId, data);
data.phaseId = (uint)(GetDBPhase() > 0 ? GetDBPhase() : 0);
data.phaseGroup = (uint)(GetDBPhase() < 0 ? Math.Abs(GetDBPhase()) : 0);
// Update in DB
byte index = 0;
PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.DEL_GAMEOBJECT);
@@ -889,6 +891,8 @@ namespace Game.Entities
stmt.AddValue(index++, GetEntry());
stmt.AddValue(index++, mapid);
stmt.AddValue(index++, spawnMask);
stmt.AddValue(index++, data.phaseId);
stmt.AddValue(index++, data.phaseGroup);
stmt.AddValue(index++, GetPositionX());
stmt.AddValue(index++, GetPositionY());
stmt.AddValue(index++, GetPositionZ());
@@ -914,7 +918,6 @@ namespace Game.Entities
}
uint entry = data.id;
uint phaseMask = data.phaseMask;
Position pos = new Position(data.posX, data.posY, data.posZ, data.orientation);
uint animprogress = data.animprogress;
@@ -922,11 +925,11 @@ namespace Game.Entities
uint artKit = data.artKit;
m_spawnId = spawnId;
if (!Create(entry, map, phaseMask, pos, data.rotation, animprogress, go_state, artKit))
if (!Create(entry, map, PhaseMasks.Normal, pos, data.rotation, animprogress, go_state, artKit))
return false;
if (data.phaseid != 0)
SetInPhase(data.phaseid, false, true);
if (data.phaseId != 0)
SetInPhase(data.phaseId, false, true);
if (data.phaseGroup != 0)
{
@@ -1055,7 +1055,6 @@ namespace Game.Entities
{
public uint id; // entry in gamobject_template
public ushort mapid;
public ushort phaseMask;
public float posX;
public float posY;
public float posZ;
@@ -1064,9 +1063,9 @@ namespace Game.Entities
public int spawntimesecs;
public uint animprogress;
public GameObjectState go_state;
public uint spawnMask;
public ulong spawnMask;
public byte artKit;
public uint phaseid;
public uint phaseId;
public uint phaseGroup;
public uint ScriptId;
public bool dbData = true;
+1 -1
View File
@@ -288,7 +288,7 @@ namespace Game.Entities
base.RemoveFromWorld();
}
public override void SaveToDB(uint mapid, uint spawnMask, uint phaseMask) { }
public override void SaveToDB(uint mapid, ulong spawnMask) { }
public ObjectGuid GetSummonerGUID() { return m_summonerGUID; }
+2 -2
View File
@@ -338,8 +338,8 @@ namespace Game.Entities
return null;
}
if (data.phaseid != 0)
creature.SetInPhase(data.phaseid, false, true);
if (data.phaseId != 0)
creature.SetInPhase(data.phaseId, false, true);
else if (data.phaseGroup != 0)
{
foreach (var phase in Global.DB2Mgr.GetPhasesForGroup(data.phaseGroup))
+24 -29
View File
@@ -3213,7 +3213,7 @@ namespace Game
return;
}
Dictionary<uint, uint> spawnMasks = new Dictionary<uint, uint>();
Dictionary<uint, ulong> spawnMasks = new Dictionary<uint, ulong>();
foreach (var mapDifficultyPair in Global.DB2Mgr.GetMapDifficulties())
{
foreach (var difficultyPair in mapDifficultyPair.Value)
@@ -3221,7 +3221,7 @@ namespace Game
if (!spawnMasks.ContainsKey(mapDifficultyPair.Key))
spawnMasks[mapDifficultyPair.Key] = 0;
spawnMasks[mapDifficultyPair.Key] |= (uint)(1 << (int)difficultyPair.Key);
spawnMasks[mapDifficultyPair.Key] |= (1ul << (int)difficultyPair.Key);
}
}
@@ -3253,7 +3253,7 @@ namespace Game
data.curhealth = result.Read<uint>(12);
data.curmana = result.Read<uint>(13);
data.movementType = result.Read<byte>(14);
data.spawnMask = result.Read<uint>(15);
data.spawnMask = result.Read<ulong>(15);
short gameEvent = result.Read<short>(16);
uint PoolId = result.Read<uint>(17);
data.npcflag = result.Read<ulong>(18);
@@ -3261,7 +3261,7 @@ namespace Game
data.unit_flags2 = result.Read<uint>(20);
data.unit_flags3 = result.Read<uint>(21);
data.dynamicflags = result.Read<uint>(22);
data.phaseid = result.Read<uint>(23);
data.phaseId = result.Read<uint>(23);
data.phaseGroup = result.Read<uint>(24);
data.ScriptId = GetScriptId(result.Read<string>(25));
if (data.ScriptId == 0)
@@ -3334,19 +3334,18 @@ namespace Game
data.orientation = Position.NormalizeOrientation(data.orientation);
}
data.phaseMask = 1;
if (data.phaseGroup != 0 && data.phaseid != 0)
if (data.phaseGroup != 0 && data.phaseId != 0)
{
Log.outError(LogFilter.Sql, "Table `creature` have creature (GUID: {0} Entry: {1}) with both `phaseid` and `phasegroup` set, `phasegroup` set to 0", guid, data.id);
data.phaseGroup = 0;
}
if (data.phaseid != 0)
if (data.phaseId != 0)
{
if (!CliDB.PhaseStorage.ContainsKey(data.phaseid))
if (!CliDB.PhaseStorage.ContainsKey(data.phaseId))
{
Log.outError(LogFilter.Sql, "Table `creature` have creature (GUID: {0} Entry: {1}) with `phaseid` {2} does not exist, set to 0", guid, data.id, data.phaseid);
data.phaseid = 0;
Log.outError(LogFilter.Sql, "Table `creature` have creature (GUID: {0} Entry: {1}) with `phaseid` {2} does not exist, set to 0", guid, data.id, data.phaseId);
data.phaseId = 0;
}
}
@@ -3386,7 +3385,7 @@ namespace Game
public void AddCreatureToGrid(ulong guid, CreatureData data)
{
uint mask = data.spawnMask;
ulong mask = data.spawnMask;
for (byte i = 0; mask != 0; i++, mask >>= 1)
{
if (Convert.ToBoolean(mask & 1))
@@ -3399,7 +3398,7 @@ namespace Game
}
public void RemoveCreatureFromGrid(ulong guid, CreatureData data)
{
uint mask = data.spawnMask;
ulong mask = data.spawnMask;
for (byte i = 0; mask != 0; i++, mask >>= 1)
{
if (Convert.ToBoolean(mask & 1))
@@ -3441,8 +3440,7 @@ namespace Game
data.curhealth = stats.GenerateHealth(cInfo);
data.curmana = stats.GenerateMana(cInfo);
data.movementType = (byte)cInfo.MovementType;
data.spawnMask = 1;
data.phaseMask = PhaseMasks.Normal;
data.spawnMask = (int)SpawnMask.Continent;
data.dbData = false;
data.npcflag = (uint)cInfo.Npcflag;
data.unit_flags = (uint)cInfo.UnitFlags;
@@ -3884,14 +3882,14 @@ namespace Game
uint count = 0;
// build single time for check spawnmask
Dictionary<uint, uint> spawnMasks = new Dictionary<uint, uint>();
Dictionary<uint, ulong> spawnMasks = new Dictionary<uint, ulong>();
foreach (var mapDifficultyPair in Global.DB2Mgr.GetMapDifficulties())
{
foreach (var difficultyPair in mapDifficultyPair.Value)
{
if (!spawnMasks.ContainsKey(mapDifficultyPair.Key))
spawnMasks[mapDifficultyPair.Key] = 0;
spawnMasks[mapDifficultyPair.Key] |= (uint)(1 << (int)difficultyPair.Key);
spawnMasks[mapDifficultyPair.Key] |= (1ul << (int)difficultyPair.Key);
}
}
@@ -3965,7 +3963,7 @@ namespace Game
}
data.go_state = (GameObjectState)gostate;
data.spawnMask = result.Read<uint>(14);
data.spawnMask = result.Read<ulong>(14);
//if (!_transportMaps.Contains(data.mapid) && (spawnMasks.ContainsKey(data.mapid) && Convert.ToBoolean(data.spawnMask & ~spawnMasks[data.mapid])))
//Log.outError(LogFilter.Sql, "Table `gameobject` has gameobject (GUID: {0} Entry: {1}) that has wrong spawn mask {2} including not supported difficulty modes for map (Id: {3}), skip",
@@ -3973,21 +3971,21 @@ namespace Game
short gameEvent = result.Read<sbyte>(15);
uint PoolId = result.Read<uint>(16);
data.phaseid = result.Read<uint>(17);
data.phaseId = result.Read<uint>(17);
data.phaseGroup = result.Read<uint>(18);
if (data.phaseGroup != 0 && data.phaseid != 0)
if (data.phaseGroup != 0 && data.phaseId != 0)
{
Log.outError(LogFilter.Sql, "Table `gameobject` have gameobject (GUID: {0} Entry: {1}) with both `phaseid` and `phasegroup` set, `phasegroup` set to 0", guid, data.id);
data.phaseGroup = 0;
}
if (data.phaseid != 0)
if (data.phaseId != 0)
{
if (!CliDB.PhaseStorage.ContainsKey(data.phaseid))
if (!CliDB.PhaseStorage.ContainsKey(data.phaseId))
{
Log.outError(LogFilter.Sql, "Table `gameobject` have gameobject (GUID: {0} Entry: {1}) with `phaseid` {2} does not exist, set to 0", guid, data.id, data.phaseid);
data.phaseid = 0;
Log.outError(LogFilter.Sql, "Table `gameobject` have gameobject (GUID: {0} Entry: {1}) with `phaseid` {2} does not exist, set to 0", guid, data.id, data.phaseId);
data.phaseId = 0;
}
}
@@ -4040,8 +4038,6 @@ namespace Game
continue;
}
data.phaseMask = 1;
if (WorldConfig.GetBoolValue(WorldCfg.CalculateGameobjectZoneAreaData))
{
uint zoneId = 0;
@@ -4231,7 +4227,7 @@ namespace Game
}
public void AddGameObjectToGrid(ulong guid, GameObjectData data)
{
uint mask = data.spawnMask;
ulong mask = data.spawnMask;
for (byte i = 0; mask != 0; i++, mask >>= 1)
{
if (Convert.ToBoolean(mask & 1))
@@ -4244,7 +4240,7 @@ namespace Game
}
public void RemoveGameObjectFromGrid(ulong guid, GameObjectData data)
{
uint mask = data.spawnMask;
ulong mask = data.spawnMask;
for (byte i = 0; mask != 0; i++, mask >>= 1)
{
if (Convert.ToBoolean(mask & 1))
@@ -4282,9 +4278,8 @@ namespace Game
data.rotation.W = rotation3;
data.spawntimesecs = (int)spawntimedelay;
data.animprogress = 100;
data.spawnMask = 1;
data.spawnMask = (int)SpawnMask.Continent;
data.go_state = GameObjectState.Ready;
data.phaseMask = (ushort)PhaseMasks.Normal;
data.artKit = (byte)(goinfo.type == GameObjectTypes.ControlZone ? 21 : 0);
data.dbData = false;
@@ -0,0 +1,5 @@
ALTER TABLE `creature`
CHANGE `spawnMask` `spawnMask` BIGINT(20) UNSIGNED DEFAULT 1 NOT NULL;
ALTER TABLE `gameobject`
CHANGE `spawnMask` `spawnMask` BIGINT(20) UNSIGNED DEFAULT 1 NOT NULL;
@@ -0,0 +1,23 @@
UPDATE `creature` SET `spawnMask` = 1 << 1 WHERE `map` = 109;
UPDATE `gameobject` SET `spawnMask` = 1 << 1 WHERE `map` = 109;
UPDATE `creature` SET `spawnMask` = (1 << 14) | (1 << 33) WHERE `map` = 564;
UPDATE `gameobject` SET `spawnMask` = (1 << 14) | (1 << 33) WHERE `map` = 564;
UPDATE `creature` SET `spawnMask` = 1 << 25 WHERE `map` = 1191;
UPDATE `gameobject` SET `spawnMask` = 1 << 25 WHERE `map` = 1191;
UPDATE `gameobject` SET `spawnMask` = (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) WHERE `guid` IN (6177, 6178);
UPDATE `gameobject` SET `spawnMask` = 1 WHERE `guid` = 200623;
UPDATE `gameobject` SET `spawnMask` = (1 << 1) | (1 << 2) WHERE `guid` = 224759;
UPDATE `creature` SET `PhaseGroup` = 0 WHERE `PhaseGroup` IN (1, 169);
UPDATE `gameobject` SET `PhaseGroup` = 0 WHERE `PhaseGroup` IN (1, 169);
UPDATE `creature` SET `PhaseId` = 0 WHERE `PhaseId` = 1;
UPDATE `gameobject` SET `PhaseId` = 0 WHERE `PhaseId` = 1;
UPDATE `creature` SET `PhaseId` = 0 WHERE `PhaseId` = 169 AND `PhaseGroup` = 396;
UPDATE `gameobject` SET `PhaseId` = 0 WHERE `PhaseId` = 169 AND `PhaseGroup` = 396;