diff options
| author | Shauren <shauren.trinity@gmail.com> | 2018-01-10 22:01:40 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-01-10 22:01:40 +0100 |
| commit | bb718b557862057524778414ee728bf1923a14a4 (patch) | |
| tree | 1900ff0b592fed7aa83071a5b1a14b6dddacf8a3 /src/server/scripts | |
| parent | 5b90538919cdf8b1984049bd203104128bec5bf2 (diff) | |
Core/Entities: Remove phasemask
Diffstat (limited to 'src/server/scripts')
12 files changed, 45 insertions, 44 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 417e8aeb7bd..a04ad5630f0 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -942,7 +942,7 @@ public: Map* map = handler->GetSession()->GetPlayer()->GetMap(); - if (!v->Create(map->GenerateLowGuid<HighGuid::Vehicle>(), map, handler->GetSession()->GetPlayer()->GetPhaseMask(), entry, x, y, z, o, nullptr, id)) + if (!v->Create(map->GenerateLowGuid<HighGuid::Vehicle>(), map, entry, x, y, z, o, nullptr, id)) { delete v; return false; diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index c7611d7e3f4..bc77d56e8a9 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -144,7 +144,7 @@ public: GameObject* object = new GameObject(); - if (!object->Create(objectInfo->entry, map, 0, *player, QuaternionData::fromEulerAnglesZYX(player->GetOrientation(), 0.0f, 0.0f), 255, GO_STATE_READY)) + if (!object->Create(objectInfo->entry, map, *player, QuaternionData::fromEulerAnglesZYX(player->GetOrientation(), 0.0f, 0.0f), 255, GO_STATE_READY)) { delete object; return false; diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 555c688ed17..2628ec3ba7a 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -348,11 +348,12 @@ public: // Check if iterator is online. If is... Player* p = ObjectAccessor::FindPlayer((*itr).guid); + std::string phases; if (p) { // ... than, it prints information like "is online", where he is, etc... onlineState = "online"; - phase = (!p->IsGameMaster() ? p->GetPhaseMask() : -1); + phases = StringJoin(p->GetPhases(), ", "); AreaTableEntry const* area = sAreaTableStore.LookupEntry(p->GetAreaId()); if (area) @@ -367,12 +368,11 @@ public: // ... else, everything is set to offline or neutral values. zoneName = "<ERROR>"; onlineState = "Offline"; - phase = 0; } // Now we can print those informations for every single member of each group! handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState, - zoneName.c_str(), phase, slot.guid.ToString().c_str(), flags.c_str(), + zoneName.c_str(), phases.c_str(), slot.guid.ToString().c_str(), flags.c_str(), lfg::GetRolesString(slot.roles).c_str()); } diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index a14ddcf1be8..4ab585546f7 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -286,7 +286,7 @@ public: mapId, (mapEntry ? mapEntry->MapName->Str[handler->GetSessionDbcLocale()] : unknown), zoneId, (zoneEntry ? zoneEntry->AreaName->Str[handler->GetSessionDbcLocale()] : unknown), areaId, (areaEntry ? areaEntry->AreaName->Str[handler->GetSessionDbcLocale()] : unknown), - object->GetPhaseMask(), StringJoin(object->GetPhases(), ", ").c_str(), + StringJoin(object->GetPhases(), ", ").c_str(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation()); if (Transport* transport = object->GetTransport()) handler->PSendSysMessage(LANG_TRANSPORT_POSITION, diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 719fd6a5992..9cf62049b0d 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -311,7 +311,7 @@ public: } Creature* creature = new Creature(); - if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, chr->GetPhaseMask(), id, x, y, z, o)) + if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, id, x, y, z, o)) { delete creature; return false; diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index e58b15ece40..4e4fa0289ce 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -666,7 +666,7 @@ public: // re-create Creature* wpCreature = new Creature(); - if (!wpCreature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, chr->GetPhaseMask(), VISUAL_WAYPOINT, chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), chr->GetOrientation())) + if (!wpCreature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, VISUAL_WAYPOINT, chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), chr->GetOrientation())) { handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT); delete wpCreature; @@ -879,7 +879,7 @@ public: float o = chr->GetOrientation(); Creature* wpCreature = new Creature(); - if (!wpCreature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, chr->GetPhaseMask(), id, x, y, z, o)) + if (!wpCreature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, id, x, y, z, o)) { handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id); delete wpCreature; @@ -943,7 +943,7 @@ public: Map* map = chr->GetMap(); Creature* creature = new Creature(); - if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, chr->GetPhaseMask(), id, x, y, z, o)) + if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, id, x, y, z, o)) { handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, id); delete creature; @@ -994,7 +994,7 @@ public: Map* map = chr->GetMap(); Creature* creature = new Creature(); - if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, chr->GetPhaseMask(), id, x, y, z, o)) + if (!creature->Create(map->GenerateLowGuid<HighGuid::Creature>(), map, id, x, y, z, o)) { handler->PSendSysMessage(LANG_WAYPOINT_NOTCREATED, id); delete creature; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index dcee4a8dce7..6f08d91ce10 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -102,17 +102,19 @@ public: } } + uint32 GetGameObjectEntry(ObjectGuid::LowType /*spawnId*/, uint32 entry) + { + if (entry == GO_BLACK_DRAGON_EGG && GetBossState(DATA_FIREMAW) == DONE) + return 0; + return entry; + } + void OnGameObjectCreate(GameObject* go) override { InstanceScript::OnGameObjectCreate(go); if (go->GetEntry() == GO_BLACK_DRAGON_EGG) - { - if (GetBossState(DATA_FIREMAW) == DONE) - go->SetPhaseMask(2, true); - else - EggList.push_back(go->GetGUID()); - } + EggList.push_back(go->GetGUID()); } void OnGameObjectRemove(GameObject* go) override @@ -255,7 +257,6 @@ public: case EVENT_RESPAWN_NEFARIUS: if (Creature* nefarius = GetCreature(DATA_LORD_VICTOR_NEFARIUS)) { - nefarius->SetPhaseMask(1, true); nefarius->setActive(true); nefarius->Respawn(); nefarius->GetMotionMaster()->MoveTargetedHome(); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index c70cd2fe588..c8964c55d72 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -406,7 +406,7 @@ class boss_twilight_halion : public CreatureScript DoCast(me, SPELL_DUSK_SHROUD, true); me->SetHealth(halion->GetHealth()); - me->SetPhaseMask(0x20, true); + me->SetInPhase(174, false, true); me->SetReactState(REACT_DEFENSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); events.ScheduleEvent(EVENT_TAIL_LASH, Seconds(12)); @@ -1193,12 +1193,16 @@ class npc_combustion_consumption : public CreatureScript case NPC_COMBUSTION: _explosionSpell = SPELL_FIERY_COMBUSTION_EXPLOSION; _damageSpell = SPELL_COMBUSTION_DAMAGE_AURA; - creature->SetPhaseMask(IsHeroic() ? 0x21 : 0x01, true); + creature->SetInPhase(DEFAULT_PHASE, false, true); + if (IsHeroic()) + creature->SetInPhase(174, false, true); break; case NPC_CONSUMPTION: _explosionSpell = SPELL_SOUL_CONSUMPTION_EXPLOSION; _damageSpell = SPELL_CONSUMPTION_DAMAGE_AURA; - creature->SetPhaseMask(IsHeroic() ? 0x21 : 0x20, true); + creature->SetInPhase(174, false, true); + if (IsHeroic()) + creature->SetInPhase(DEFAULT_PHASE, false, true); break; default: // Should never happen _explosionSpell = 0; @@ -1335,12 +1339,12 @@ class go_twilight_portal : public GameObjectScript switch (gameobject->GetEntry()) { case GO_HALION_PORTAL_EXIT: - gameobject->SetPhaseMask(0x20, true); + gameobject->SetInPhase(174, false, true); _spellId = gameobject->GetGOInfo()->goober.spell; break; case GO_HALION_PORTAL_1: case GO_HALION_PORTAL_2: - gameobject->SetPhaseMask(0x1, true); + gameobject->SetInPhase(DEFAULT_PHASE, false, true); /// Because WDB template has non-existent spell ID, not seen in sniffs either, meh _spellId = SPELL_TWILIGHT_REALM; break; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index 830f897e06e..f829093c5a5 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -143,8 +143,7 @@ class instance_halls_of_reflection : public InstanceMapScript break; case NPC_FROSTSWORN_GENERAL: FrostswornGeneralGUID = creature->GetGUID(); - if (GetBossState(DATA_MARWYN) == DONE) - creature->SetPhaseMask(1, true); + creature->SetInPhase(170, true, GetBossState(DATA_MARWYN) != DONE); break; case NPC_JAINA_ESCAPE: case NPC_SYLVANAS_ESCAPE: @@ -326,7 +325,7 @@ class instance_halls_of_reflection : public InstanceMapScript HandleGameObject(ImpenetrableDoorGUID, true); DoUpdateWorldState(WORLD_STATE_HOR_WAVES_ENABLED, 0); if (Creature* general = instance->GetCreature(FrostswornGeneralGUID)) - general->SetPhaseMask(1, true); + general->SetInPhase(170, true, false); SpawnGunship(); SpawnEscapeEvent(); diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp index 38fee2d97bd..7771e0b2781 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp @@ -90,7 +90,7 @@ public: void SpawnGameObject(uint32 entry, Position const& pos) { GameObject* go = new GameObject(); - if (!go->Create(entry, instance, PHASEMASK_NORMAL, pos, QuaternionData(), 255, GO_STATE_READY)) + if (!go->Create(entry, instance, pos, QuaternionData(), 255, GO_STATE_READY)) { delete go; return; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index e666b346d54..16807804090 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -62,18 +62,15 @@ class instance_oculus : public InstanceMapScript break; case NPC_VAROS: VarosGUID = creature->GetGUID(); - if (GetBossState(DATA_DRAKOS) == DONE) - creature->SetPhaseMask(1, true); + creature->SetInPhase(170, true, GetBossState(DATA_DRAKOS) != DONE); break; case NPC_UROM: UromGUID = creature->GetGUID(); - if (GetBossState(DATA_VAROS) == DONE) - creature->SetPhaseMask(1, true); + creature->SetInPhase(170, true, GetBossState(DATA_VAROS) != DONE); break; case NPC_EREGOS: EregosGUID = creature->GetGUID(); - if (GetBossState(DATA_UROM) == DONE) - creature->SetPhaseMask(1, true); + creature->SetInPhase(170, true, GetBossState(DATA_UROM) != DONE); break; case NPC_CENTRIFUGE_CONSTRUCT: if (creature->IsAlive()) @@ -105,10 +102,10 @@ class instance_oculus : public InstanceMapScript break; case NPC_GREATER_WHELP: if (GetBossState(DATA_UROM) == DONE) - { - creature->SetPhaseMask(1, true); GreaterWhelpList.push_back(creature->GetGUID()); - } + else + creature->SetInPhase(170, true, true); + break; default: break; @@ -197,7 +194,7 @@ class instance_oculus : public InstanceMapScript DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter); FreeDragons(); if (Creature* varos = instance->GetCreature(VarosGUID)) - varos->SetPhaseMask(1, true); + varos->SetInPhase(170, true, false); events.ScheduleEvent(EVENT_VAROS_INTRO, 15000); } break; @@ -206,7 +203,7 @@ class instance_oculus : public InstanceMapScript { DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0); if (Creature* urom = instance->GetCreature(UromGUID)) - urom->SetPhaseMask(1, true); + urom->SetInPhase(170, true, false); } break; case DATA_UROM: @@ -214,7 +211,7 @@ class instance_oculus : public InstanceMapScript { if (Creature* eregos = instance->GetCreature(EregosGUID)) { - eregos->SetPhaseMask(1, true); + eregos->SetInPhase(170, true, false); GreaterWhelps(); events.ScheduleEvent(EVENT_EREGOS_INTRO, 5000); } @@ -316,7 +313,7 @@ class instance_oculus : public InstanceMapScript { for (ObjectGuid guid : GreaterWhelpList) if (Creature* gwhelp = instance->GetCreature(guid)) - gwhelp->SetPhaseMask(1, true); + gwhelp->SetInPhase(170, true, false); } protected: diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp index 5dd5ac26cdd..ef24b8a5af1 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp @@ -160,10 +160,10 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId) if (player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z) > 5.0f + atEntry->Radius) { // he dropped it further, summon mound - GameObject* go = new GameObject; + GameObject* go = new GameObject(); Map* map = player->GetMap(); - if (!go->Create(SI_SILITHYST_MOUND, map, player->GetPhaseMask(), *player, QuaternionData(), 255, GO_STATE_READY)) + if (!go->Create(SI_SILITHYST_MOUND, map, *player, QuaternionData(), 255, GO_STATE_READY)) { delete go; return true; @@ -191,10 +191,10 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId) if (player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z) > 5.0f + atEntry->Radius) { // he dropped it further, summon mound - GameObject* go = new GameObject; + GameObject* go = new GameObject(); Map* map = player->GetMap(); - if (!go->Create(SI_SILITHYST_MOUND, map, player->GetPhaseMask(), *player, QuaternionData(), 255, GO_STATE_READY)) + if (!go->Create(SI_SILITHYST_MOUND, map, *player, QuaternionData(), 255, GO_STATE_READY)) { delete go; return true; |
