aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/CoreAI/PassiveAI.cpp4
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp4
-rw-r--r--src/server/game/AI/CreatureAI.cpp4
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp8
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp2
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp6
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp64
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp6
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp6
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp10
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp4
-rw-r--r--src/server/game/Combat/CombatManager.cpp12
-rw-r--r--src/server/game/Combat/ThreatManager.cpp6
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp111
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp6
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h3
-rw-r--r--src/server/game/Entities/Object/MovementInfo.h2
-rw-r--r--src/server/game/Entities/Object/Object.cpp54
-rw-r--r--src/server/game/Entities/Object/Object.h6
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp50
-rw-r--r--src/server/game/Entities/Pet/Pet.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp129
-rw-r--r--src/server/game/Entities/Player/Player.h6
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp2
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp58
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp214
-rw-r--r--src/server/game/Entities/Unit/Unit.h233
-rw-r--r--src/server/game/Entities/Unit/UnitDefines.h33
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp16
-rw-r--r--src/server/game/Events/GameEventMgr.cpp2
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp4
-rw-r--r--src/server/game/Handlers/LootHandler.cpp4
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp8
-rw-r--r--src/server/game/Handlers/PetHandler.cpp8
-rw-r--r--src/server/game/Handlers/TaxiHandler.cpp2
-rw-r--r--src/server/game/Maps/MapScripts.cpp2
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp6
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp8
-rw-r--r--src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp4
-rw-r--r--src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp2
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp120
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp6
-rw-r--r--src/server/game/Spells/Spell.cpp32
-rw-r--r--src/server/game/Spells/SpellEffects.cpp18
-rw-r--r--src/server/game/Spells/SpellInfo.cpp6
-rw-r--r--src/server/scripts/Battlefield/BattlefieldWG.cpp2
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp28
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp14
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp46
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp26
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp16
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp4
-rw-r--r--src/server/scripts/Events/hallows_end.cpp8
-rw-r--r--src/server/scripts/Events/operation_gnomeregan.cpp4
-rw-r--r--src/server/scripts/Events/zalazane_fall.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp18
-rw-r--r--src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp4
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp6
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp8
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp4
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_azshara.cpp4
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp18
-rw-r--r--src/server/scripts/Kalimdor/zone_desolace.cpp4
-rw-r--r--src/server/scripts/Kalimdor/zone_moonglade.cpp18
-rw-r--r--src/server/scripts/Kalimdor/zone_orgrimmar.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp22
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp12
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp8
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp6
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp6
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp28
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp8
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp6
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp12
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp10
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp16
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp10
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp8
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp22
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp6
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp14
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp16
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp12
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp6
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp12
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp8
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp6
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp16
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp40
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp18
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp40
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp14
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp6
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp8
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp6
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp10
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp10
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp8
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp34
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp6
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp18
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp8
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp14
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp32
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp6
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp24
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp12
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp10
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp12
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp6
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp22
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp10
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp36
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp2
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp8
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp18
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp6
-rw-r--r--src/server/scripts/Pet/pet_dk.cpp2
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp4
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp64
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp2
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp4
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp2
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp4
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp6
-rw-r--r--src/server/scripts/World/npcs_special.cpp54
232 files changed, 1587 insertions, 1436 deletions
diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp
index c11bdc4ed21..d2b5a61dcd7 100644
--- a/src/server/game/AI/CoreAI/PassiveAI.cpp
+++ b/src/server/game/AI/CoreAI/PassiveAI.cpp
@@ -36,7 +36,7 @@ NullCreatureAI::NullCreatureAI(Creature* creature) : CreatureAI(creature)
int32 NullCreatureAI::Permissible(Creature const* creature)
{
- if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK))
+ if (creature->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK))
return PERMIT_BASE_PROACTIVE + 50;
if (creature->IsTrigger())
@@ -70,7 +70,7 @@ void PossessedAI::UpdateAI(uint32 /*diff*/)
void PossessedAI::JustDied(Unit* /*u*/)
{
// We died while possessed, disable our loot
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
}
void CritterAI::JustEngagedWith(Unit* /*who*/)
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index ee73d4b2b7d..af4a9ed93a4 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -402,7 +402,7 @@ void PetAI::HandleReturnMovement()
me->GetMotionMaster()->MoveFollow(me->GetCharmerOrOwner(), PET_FOLLOW_DIST, me->GetFollowAngle());
}
}
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates that we're actively going after a target - we're returning, so remove it
+ me->RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates that we're actively going after a target - we're returning, so remove it
}
void PetAI::DoAttack(Unit* target, bool chase)
@@ -412,7 +412,7 @@ void PetAI::DoAttack(Unit* target, bool chase)
if (me->Attack(target, true))
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it
+ me->SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it
// Play sound to let the player know the pet is attacking something it picked on its own
if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack())
me->SendPetAIReaction(me->GetGUID());
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 73a67a0a981..c1e57fe9527 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -384,10 +384,10 @@ int32 CreatureAI::VisualizeBoundary(Seconds duration, Unit* owner, bool fill) co
if (TempSummon* point = owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, Position(startPosition.GetPositionX() + front.first * BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + front.second * BOUNDARY_VISUALIZE_STEP_SIZE, spawnZ), TEMPSUMMON_TIMED_DESPAWN, duration))
{
point->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
- point->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ point->SetUnitFlag(UNIT_FLAG_STUNNED);
point->SetImmuneToAll(true);
if (!hasOutOfBoundsNeighbor)
- point->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ point->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index 0f1260bf1fc..4625876abb9 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -305,7 +305,7 @@ SpellInfo const* ScriptedAI::SelectSpell(Unit* target, uint32 school, uint32 mec
return nullptr;
// Silenced so we can't cast
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))
+ if (me->HasUnitFlag(UNIT_FLAG_SILENCED))
return nullptr;
// Using the extended script system we first create a list of viable spells
@@ -471,13 +471,13 @@ void ScriptedAI::SetEquipmentSlots(bool loadDefault, int32 mainHand /*= EQUIP_NO
}
if (mainHand >= 0)
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(mainHand));
+ me->SetVirtualItem(0, uint32(mainHand));
if (offHand >= 0)
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(offHand));
+ me->SetVirtualItem(1, uint32(offHand));
if (ranged >= 0)
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, uint32(ranged));
+ me->SetVirtualItem(2, uint32(ranged));
}
void ScriptedAI::SetCombatMovement(bool allowMovement)
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index 4ad42066d77..ca5d4c5484e 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -321,7 +321,7 @@ void EscortAI::Start(bool isActiveAttacker /* = true*/, bool run /* = false */,
me->GetMotionMaster()->Clear(MOTION_PRIORITY_NORMAL);
// disable npcflags
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
if (me->IsImmuneToNPC())
{
_hasImmuneToNPCFlags = true;
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index d945512a9bf..876e1f4b916 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -185,7 +185,7 @@ void FollowerAI::StartFollow(Player* player, uint32 factionForFollower, uint32 q
me->GetMotionMaster()->Clear(MOTION_PRIORITY_NORMAL);
me->PauseMovement();
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
AddFollowState(STATE_FOLLOW_INPROGRESS);
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 751337ca3d1..c7dbdfe6653 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -68,8 +68,8 @@ void SmartAI::StartPath(bool run/* = false*/, uint32 pathId/* = 0*/, bool repeat
if (invoker && invoker->GetTypeId() == TYPEID_PLAYER)
{
- _escortNPCFlags = me->GetUInt32Value(UNIT_NPC_FLAGS);
- me->SetFlag(UNIT_NPC_FLAGS, 0);
+ _escortNPCFlags = me->GetNpcFlags();
+ me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
}
me->GetMotionMaster()->MovePath(_path, _repeatWaypointPath);
@@ -193,7 +193,7 @@ void SmartAI::EndPath(bool fail)
if (_escortNPCFlags)
{
- me->SetFlag(UNIT_NPC_FLAGS, _escortNPCFlags);
+ me->ReplaceAllNpcFlags((NPCFlags)_escortNPCFlags);
_escortNPCFlags = 0;
}
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index b9aa990a071..285e736317d 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -727,7 +727,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
if (IsUnit(target))
{
- target->ToUnit()->SetUInt32Value(UNIT_NPC_EMOTESTATE, e.action.emote.emote);
+ target->ToUnit()->SetEmoteState(Emote(e.action.emote.emote));
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_SET_EMOTE_STATE. Unit %s set emotestate to %u",
target->GetGUID().ToString().c_str(), e.action.emote.emote);
}
@@ -1526,7 +1526,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (uint32 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i)
if (!e.action.equip.mask || (e.action.equip.mask & (1 << i)))
- npc->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, slot[i]);
+ npc->SetVirtualItem(i, slot[i]);
}
}
break;
@@ -1625,21 +1625,21 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
for (WorldObject* target : targets)
if (IsCreature(target))
- target->ToUnit()->SetUInt32Value(UNIT_NPC_FLAGS, e.action.flag.flag);
+ target->ToUnit()->ReplaceAllNpcFlags(NPCFlags(e.action.flag.flag));
break;
}
case SMART_ACTION_ADD_NPC_FLAG:
{
for (WorldObject* target : targets)
if (IsCreature(target))
- target->ToUnit()->SetFlag(UNIT_NPC_FLAGS, e.action.flag.flag);
+ target->ToUnit()->SetNpcFlag(NPCFlags(e.action.flag.flag));
break;
}
case SMART_ACTION_REMOVE_NPC_FLAG:
{
for (WorldObject* target : targets)
if (IsCreature(target))
- target->ToUnit()->RemoveFlag(UNIT_NPC_FLAGS, e.action.flag.flag);
+ target->ToUnit()->RemoveNpcFlag(NPCFlags(e.action.flag.flag));
break;
}
case SMART_ACTION_CROSS_CAST:
@@ -1768,15 +1768,51 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
case SMART_ACTION_SET_UNIT_FIELD_BYTES_1:
{
for (WorldObject* target : targets)
+ {
if (IsUnit(target))
- target->ToUnit()->SetByteFlag(UNIT_FIELD_BYTES_1, e.action.setunitByte.type, e.action.setunitByte.byte1);
+ {
+ switch (e.action.setunitByte.type)
+ {
+ case 0:
+ target->ToUnit()->SetStandState(UnitStandStateType(e.action.setunitByte.byte1));
+ break;
+ case 1:
+ // pet talent points
+ break;
+ case 2:
+ target->ToUnit()->SetVisFlag(UnitVisFlags(e.action.setunitByte.byte1));
+ break;
+ case 3:
+ target->ToUnit()->SetAnimTier(AnimTier(e.action.setunitByte.byte1));
+ break;
+ }
+ }
+ }
break;
}
case SMART_ACTION_REMOVE_UNIT_FIELD_BYTES_1:
{
for (WorldObject* target : targets)
+ {
if (IsUnit(target))
- target->ToUnit()->RemoveByteFlag(UNIT_FIELD_BYTES_1, e.action.delunitByte.type, e.action.delunitByte.byte1);
+ {
+ switch (e.action.setunitByte.type)
+ {
+ case 0:
+ target->ToUnit()->SetStandState(UNIT_STAND_STATE_STAND);
+ break;
+ case 1:
+ // pet talent points
+ break;
+ case 2:
+ target->ToUnit()->RemoveVisFlag(UnitVisFlags(e.action.setunitByte.byte1));
+ break;
+ case 3:
+ target->ToUnit()->SetAnimTier(AnimTier::Ground);
+ break;
+ }
+ }
+ }
break;
}
case SMART_ACTION_INTERRUPT_SPELL:
@@ -2234,9 +2270,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setImmunePC.immunePC)
- target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
else
- target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
}
}
break;
@@ -2248,9 +2284,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setImmuneNPC.immuneNPC)
- target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
else
- target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
}
}
break;
@@ -2262,9 +2298,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setUninteractible.uninteractible)
- target->ToUnit()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
else
- target->ToUnit()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
break;
@@ -2767,7 +2803,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui
{
if (!me || !me->IsEngaged() || !me->GetMaxPower(POWER_MANA))
return;
- uint32 perc = uint32(100.0f * me->GetPower(POWER_MANA) / me->GetMaxPower(POWER_MANA));
+ uint32 perc = uint32(me->GetPowerPct(POWER_MANA));
if (perc > e.event.minMaxRepeat.max || perc < e.event.minMaxRepeat.min)
return;
ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax);
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index cbe8a6aa313..99fedbaa4f7 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -478,7 +478,7 @@ void Battlefield::HideNpc(Creature* creature)
{
creature->CombatStop();
creature->SetReactState(REACT_PASSIVE);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
creature->SetPhaseMask(2, true);
creature->DisappearAndDie();
creature->SetVisible(false);
@@ -488,14 +488,14 @@ void Battlefield::ShowNpc(Creature* creature, bool aggressive)
{
creature->SetPhaseMask(1, true);
creature->SetVisible(true);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
if (!creature->IsAlive())
creature->Respawn(true);
if (aggressive)
creature->SetReactState(REACT_AGGRESSIVE);
else
{
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->SetReactState(REACT_PASSIVE);
}
}
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 9594fc82ab3..234148b02fb 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -1568,9 +1568,9 @@ bool Battleground::AddSpiritGuide(uint32 type, float x, float y, float z, float
/// @todo Fix display here
// creature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL);
// casting visual effect
- creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL);
+ creature->SetChannelSpellId(SPELL_SPIRIT_HEAL_CHANNEL);
// correct cast speed
- creature->SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
+ creature->SetModCastingSpeed(1.0f);
//creature->CastSpell(creature, SPELL_SPIRIT_HEAL_CHANNEL, true);
return true;
}
@@ -1692,7 +1692,7 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)
if (!isArena())
{
// To be able to remove insignia -- ONLY IN Battlegrounds
- victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ victim->SetUnitFlag(UNIT_FLAG_SKINNABLE);
RewardXPAtKill(killer, victim);
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index 0e07f0e1b39..daca43f5b57 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -143,9 +143,9 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
if (siege->IsAlive())
{
- if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_CANNOT_SWIM|UNIT_FLAG_IMMUNE_TO_PC))
+ if (siege->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANNOT_SWIM | UNIT_FLAG_IMMUNE_TO_PC))
// following sniffs the vehicle always has UNIT_FLAG_CANNOT_SWIM
- siege->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_IMMUNE_TO_PC);
+ siege->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_IMMUNE_TO_PC);
else
siege->SetHealth(siege->GetMaxHealth());
}
@@ -582,7 +582,7 @@ void BattlegroundIC::HandleContestedNodes(ICNodePoint* node)
for (Creature* cannon : cannons)
{
cannon->GetVehicleKit()->RemoveAllPassengers();
- cannon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ cannon->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
else if (node->nodeType == NODE_TYPE_WORKSHOP)
@@ -614,7 +614,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture)
gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f);
for (Creature* cannon : cannons)
- cannon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ cannon->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)
{
@@ -769,7 +769,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture)
if (Creature* siegeEngine = GetBGCreature(siegeType))
{
- siegeEngine->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_CANNOT_SWIM);
+ siegeEngine->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANNOT_SWIM);
siegeEngine->SetImmuneToPC(true);
siegeEngine->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]);
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 4484824002b..b3a1c1d0b4d 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -682,9 +682,9 @@ void BattlegroundSA::DemolisherStartState(bool start)
if (Creature* dem = GetBGCreature(i))
{
if (start)
- dem->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ dem->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
else
- dem->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ dem->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
}
}
diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp
index f35feb7cf92..b5b8b24e068 100644
--- a/src/server/game/Combat/CombatManager.cpp
+++ b/src/server/game/Combat/CombatManager.cpp
@@ -229,8 +229,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who)
if (!IsInCombatWith(ref.first))
{
Unit* target = ref.second->GetOther(who);
- if ((_owner->IsImmuneToPC() && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) ||
- (_owner->IsImmuneToNPC() && !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)))
+ if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) ||
+ (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)))
continue;
SetInCombatWith(target);
}
@@ -238,8 +238,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who)
for (auto& ref : mgr._pvpRefs)
{
Unit* target = ref.second->GetOther(who);
- if ((_owner->IsImmuneToPC() && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) ||
- (_owner->IsImmuneToNPC() && !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)))
+ if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) ||
+ (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)))
continue;
SetInCombatWith(target);
}
@@ -368,14 +368,14 @@ bool CombatManager::UpdateOwnerCombatState() const
if (combatState)
{
- _owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ _owner->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
_owner->AtEnterCombat();
if (_owner->GetTypeId() != TYPEID_UNIT)
_owner->AtEngage(GetAnyTarget());
}
else
{
- _owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ _owner->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
_owner->AtExitCombat();
if (_owner->GetTypeId() != TYPEID_UNIT)
_owner->AtDisengage();
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index a40810582f1..d1eaa230139 100644
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -85,14 +85,14 @@ void ThreatReference::UpdateOffline()
{
if (a->GetTypeId() == TYPEID_UNIT && a->ToCreature()->IsTrigger())
return false;
- if (a->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (a->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
- if (b->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
+ if (b->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC))
return false;
}
else
{
- if (b->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC))
+ if (b->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC))
return false;
}
return true;
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 3660518b1e8..0fa99cfe2cc 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -508,7 +508,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/)
SetName(normalInfo->Name); // at normal entry always
- SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
+ SetModCastingSpeed(1.0f);
SetSpeedRate(MOVE_WALK, cinfo->speed_walk);
SetSpeedRate(MOVE_RUN, cinfo->speed_run);
@@ -518,7 +518,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/)
// Will set UNIT_FIELD_BOUNDINGRADIUS and UNIT_FIELD_COMBATREACH
SetObjectScale(GetNativeObjectScale());
- SetFloatValue(UNIT_FIELD_HOVERHEIGHT, cinfo->HoverHeight);
+ SetHoverHeight(cinfo->HoverHeight);
SetCanDualWield(cinfo->flags_extra & CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK);
@@ -548,23 +548,23 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
SetFaction(cInfo->faction);
- uint32 npcflag, unit_flags, dynamicflags;
- ObjectMgr::ChooseCreatureFlags(cInfo, &npcflag, &unit_flags, &dynamicflags, data);
+ uint32 npcFlags, unitFlags, dynamicFlags;
+ ObjectMgr::ChooseCreatureFlags(cInfo, &npcFlags, &unitFlags, &dynamicFlags, data);
if (cInfo->flags_extra & CREATURE_FLAG_EXTRA_WORLDEVENT)
- SetUInt32Value(UNIT_NPC_FLAGS, npcflag | sGameEventMgr->GetNPCFlag(this));
- else
- SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
+ npcFlags |= sGameEventMgr->GetNPCFlag(this);
+
+ ReplaceAllNpcFlags(NPCFlags(npcFlags));
// if unit is in combat, keep this flag
- unit_flags &= ~UNIT_FLAG_IN_COMBAT;
+ unitFlags &= ~UNIT_FLAG_IN_COMBAT;
if (IsInCombat())
- unit_flags |= UNIT_FLAG_IN_COMBAT;
+ unitFlags |= UNIT_FLAG_IN_COMBAT;
- SetUInt32Value(UNIT_FIELD_FLAGS, unit_flags);
- SetUInt32Value(UNIT_FIELD_FLAGS_2, cInfo->unit_flags2);
+ ReplaceAllUnitFlags(UnitFlags(unitFlags));
+ ReplaceAllUnitFlags2(UnitFlags2(cInfo->unit_flags2));
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, dynamicflags);
+ ReplaceAllDynamicFlags(dynamicFlags);
SetCanDualWield(cInfo->flags_extra & CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK);
@@ -611,7 +611,7 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
// trigger creature is always uninteractible and can not be attacked
if (IsTrigger())
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
InitializeReactState();
@@ -870,7 +870,7 @@ void Creature::Regenerate(Powers power)
uint32 curValue = GetPower(power);
uint32 maxValue = GetMaxPower(power);
- if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER))
+ if (!HasUnitFlag2(UNIT_FLAG2_REGENERATE_POWER))
return;
if (curValue >= maxValue)
@@ -1259,7 +1259,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup)
{
m_lootRecipient.Clear();
m_lootRecipientGroup = 0;
- RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE|UNIT_DYNFLAG_TAPPED);
+ RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE|UNIT_DYNFLAG_TAPPED);
return;
}
@@ -1279,7 +1279,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup)
else
m_lootRecipientGroup = ObjectGuid::Empty;
- SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED);
+ SetDynamicFlag(UNIT_DYNFLAG_TAPPED);
}
// return true if this creature is tapped by the player or by a member of his group.
@@ -1319,9 +1319,9 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
CreatureData& data = sObjectMgr->NewOrExistCreatureData(m_spawnId);
uint32 displayId = GetNativeDisplayId();
- uint32 npcflag = GetUInt32Value(UNIT_NPC_FLAGS);
- uint32 unit_flags = GetUInt32Value(UNIT_FIELD_FLAGS);
- uint32 dynamicflags = GetUInt32Value(UNIT_DYNAMIC_FLAGS);
+ uint32 npcflag = GetNpcFlags();
+ uint32 unit_flags = GetUnitFlags();
+ uint32 dynamicflags = GetDynamicFlags();
// check if it's a custom model and if not, use 0 for displayId
CreatureTemplate const* cinfo = GetCreatureTemplate();
@@ -1702,7 +1702,7 @@ void Creature::LoadEquipment(int8 id, bool force /*= true*/)
if (force)
{
for (uint8 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i)
- SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, 0);
+ SetVirtualItem(i, 0);
m_equipmentId = 0;
}
@@ -1715,7 +1715,7 @@ void Creature::LoadEquipment(int8 id, bool force /*= true*/)
m_equipmentId = id;
for (uint8 i = 0; i < MAX_EQUIPMENT_ITEMS; ++i)
- SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i, einfo->ItemEntry[i]);
+ SetVirtualItem(i, einfo->ItemEntry[i]);
}
void Creature::SetSpawnHealth()
@@ -1860,8 +1860,8 @@ bool Creature::CanStartAttack(Unit const* who, bool force) const
return false;
// This set of checks is should be done only for creatures
- if ((IsImmuneToNPC() && !who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
- || (IsImmuneToPC() && who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)))
+ if ((IsImmuneToNPC() && !who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
+ || (IsImmuneToPC() && who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)))
return false;
// Do not attack non-combat pets
@@ -1923,7 +1923,7 @@ float Creature::GetAttackDistance(Unit const* player) const
// The aggro radius for creatures with equal level as the player is 20 yards.
// The combatreach should not get taken into account for the distance so we drop it from the range (see Supremus as expample)
- float baseAggroDistance = 20.0f - GetFloatValue(UNIT_FIELD_COMBATREACH);
+ float baseAggroDistance = 20.0f - GetCombatReach();
// + - 1 yard for each level difference between player and creature
float aggroRadius = baseAggroDistance + float(levelDifference);
@@ -1984,9 +1984,9 @@ void Creature::setDeathState(DeathState s)
DoNotReacquireSpellFocusTarget(); // cancel delayed re-target
SetTarget(ObjectGuid::Empty); // drop target - dead mobs shouldn't ever target things
- SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
- SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); // if creature is mounted on a virtual mount, remove it at death
+ SetMountDisplayId(0); // if creature is mounted on a virtual mount, remove it at death
setActive(false);
@@ -2028,9 +2028,9 @@ void Creature::setDeathState(DeathState s)
uint32 npcflag, unit_flags, dynamicflags;
ObjectMgr::ChooseCreatureFlags(cinfo, &npcflag, &unit_flags, &dynamicflags, creatureData);
- SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
- SetUInt32Value(UNIT_FIELD_FLAGS, unit_flags);
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, dynamicflags);
+ ReplaceAllNpcFlags(NPCFlags(npcflag));
+ ReplaceAllUnitFlags(UnitFlags(unit_flags));
+ ReplaceAllDynamicFlags(dynamicflags);
SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool));
@@ -2364,7 +2364,7 @@ bool Creature::CanAssistTo(Unit const* u, Unit const* enemy, bool checkfaction /
if (IsCivilian())
return false;
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE) || IsImmuneToNPC())
+ if (HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE) || IsImmuneToNPC())
return false;
// skip fighting creature
@@ -2409,7 +2409,7 @@ bool Creature::_IsTargetAcceptable(Unit const* target) const
if (target->HasUnitState(UNIT_STATE_DIED))
{
// some creatures can detect fake death
- if (CanIgnoreFeignDeath() && target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH))
+ if (CanIgnoreFeignDeath() && target->HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH))
return true;
else
return false;
@@ -2523,12 +2523,9 @@ bool Creature::LoadCreaturesAddon()
// 2 StandFlags
// 3 StandMiscFlags
- SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, uint8(cainfo->bytes1 & 0xFF));
- //SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_PET_TALENTS, uint8((cainfo->bytes1 >> 8) & 0xFF));
- SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_PET_TALENTS, 0);
- SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, uint8((cainfo->bytes1 >> 16) & 0xFF));
-
- SetAnimTier(static_cast<AnimTier>((cainfo->bytes1 >> 24) & 0xFF));
+ SetStandState(UnitStandStateType(cainfo->bytes1 & 0xFF));
+ ReplaceAllVisFlags(UnitVisFlags((cainfo->bytes1 >> 16) & 0xFF));
+ SetAnimTier(AnimTier((cainfo->bytes1 >> 24) & 0xFF));
//! Suspected correlation between UNIT_FIELD_BYTES_1, offset 3, value 0x2:
//! If no inhabittype_fly (if no MovementFlag_DisableGravity or MovementFlag_CanFly flag found in sniffs)
@@ -2546,16 +2543,14 @@ bool Creature::LoadCreaturesAddon()
// 2 PetFlags Pet only, so always 0 for default creature
// 3 ShapeshiftForm Must be determined/set by shapeshift spell/aura
- SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE, uint8(cainfo->bytes2 & 0xFF));
- //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, uint8((cainfo->bytes2 >> 8) & 0xFF));
- //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, uint8((cainfo->bytes2 >> 16) & 0xFF));
- SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, 0);
- //SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHAPESHIFT_FORM, uint8((cainfo->bytes2 >> 24) & 0xFF));
- SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHAPESHIFT_FORM, 0);
+ SetSheath(SheathState(cainfo->bytes2 & 0xFF));
+ ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_NONE);
+ ReplaceAllPetFlags(UNIT_PET_FLAG_NONE);
+ SetShapeshiftForm(FORM_NONE);
}
if (cainfo->emote != 0)
- SetUInt32Value(UNIT_NPC_EMOTESTATE, cainfo->emote);
+ SetEmoteState(Emote(cainfo->emote));
// Check if visibility distance different
if (cainfo->visibilityDistanceType != VisibilityDistanceType::Normal)
@@ -2722,19 +2717,19 @@ bool Creature::CanEnterWater() const
void Creature::RefreshCanSwimFlag(bool recheck)
{
if (!_isMissingCanSwimFlagOutOfCombat || recheck)
- _isMissingCanSwimFlagOutOfCombat = !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM);
+ _isMissingCanSwimFlagOutOfCombat = !HasUnitFlag(UNIT_FLAG_CAN_SWIM);
// Check if the creature has UNIT_FLAG_CAN_SWIM and add it if it's missing
// Creatures must be able to chase a target in water if they can enter water
if (_isMissingCanSwimFlagOutOfCombat && CanEnterWater())
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM);
+ SetUnitFlag(UNIT_FLAG_CAN_SWIM);
}
void Creature::AllLootRemovedFromCorpse()
{
if (loot.loot_type != LOOT_SKINNING && !IsPet() && GetCreatureTemplate()->SkinLootId && hasLootRecipient())
if (LootTemplates_Skinning.HaveLootFor(GetCreatureTemplate()->SkinLootId))
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ SetUnitFlag(UNIT_FLAG_SKINNABLE);
time_t now = GameTime::GetGameTime();
// Do not reset corpse remove time if corpse is already removed
@@ -3109,8 +3104,8 @@ void Creature::SetObjectScale(float scale)
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(GetDisplayId()))
{
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, (IsPet() ? 1.0f : minfo->bounding_radius) * scale);
- SetFloatValue(UNIT_FIELD_COMBATREACH, (IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * scale);
+ SetBoundingRadius((IsPet() ? 1.0f : minfo->bounding_radius) * scale);
+ SetCombatReach((IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * scale);
}
}
@@ -3120,8 +3115,8 @@ void Creature::SetDisplayId(uint32 modelId)
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
{
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, (IsPet() ? 1.0f : minfo->bounding_radius) * GetObjectScale());
- SetFloatValue(UNIT_FIELD_COMBATREACH, (IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * GetObjectScale());
+ SetBoundingRadius((IsPet() ? 1.0f : minfo->bounding_radius) * GetObjectScale());
+ SetCombatReach((IsPet() ? DEFAULT_PLAYER_COMBAT_REACH : minfo->combat_reach) * GetObjectScale());
}
}
@@ -3140,11 +3135,11 @@ void Creature::SetSpellFocus(Spell const* focusSpell, WorldObject const* target)
return;
// Prevent dead / feign death creatures from setting a focus target
- if (!IsAlive() || HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH) || HasAuraType(SPELL_AURA_FEIGN_DEATH))
+ if (!IsAlive() || HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH) || HasAuraType(SPELL_AURA_FEIGN_DEATH))
return;
// Don't allow stunned creatures to set a focus target
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
+ if (HasUnitFlag(UNIT_FLAG_STUNNED))
return;
// some spells shouldn't track targets
@@ -3173,7 +3168,7 @@ void Creature::SetSpellFocus(Spell const* focusSpell, WorldObject const* target)
_spellFocusInfo.Spell = focusSpell;
bool const noTurnDuringCast = spellInfo->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST);
- bool const turnDisabled = HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN);
+ bool const turnDisabled = HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN);
// set target, then force send update packet to players if it changed to provide appropriate facing
ObjectGuid newTarget = (target && !noTurnDuringCast && !turnDisabled) ? target->GetGUID() : ObjectGuid::Empty;
if (GetGuidValue(UNIT_FIELD_TARGET) != newTarget)
@@ -3219,7 +3214,7 @@ void Creature::ReleaseSpellFocus(Spell const* focusSpell, bool withDelay)
if (IsPet()) // player pets do not use delay system
{
- if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN))
+ if (!HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN))
ReacquireSpellFocusTarget();
}
else // don't allow re-target right away to prevent visual bugs
@@ -3238,7 +3233,7 @@ void Creature::ReacquireSpellFocusTarget()
SetGuidValue(UNIT_FIELD_TARGET, _spellFocusInfo.Target);
- if (!HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN))
+ if (!HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN))
{
if (_spellFocusInfo.Target)
{
@@ -3371,8 +3366,8 @@ void Creature::AtDisengage()
Unit::AtDisengage();
ClearUnitState(UNIT_STATE_ATTACK_PLAYER);
- if (IsAlive() && HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED))
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, GetCreatureTemplate()->dynamicflags);
+ if (IsAlive() && HasDynamicFlag(UNIT_DYNFLAG_TAPPED))
+ ReplaceAllDynamicFlags(GetCreatureTemplate()->dynamicflags);
if (IsPet() || IsGuardian()) // update pets' speed for catchup OOC speed
{
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index c955e5d102b..a207088ec5b 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1567,7 +1567,7 @@ void GameObject::Use(Unit* user)
if (Player* playerUser = user->ToPlayer())
{
- if (m_goInfo->CannotBeUsedUnderImmunity() && playerUser->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE))
+ if (m_goInfo->CannotBeUsedUnderImmunity() && playerUser->HasUnitFlag(UNIT_FLAG_IMMUNE))
return;
if (!m_goInfo->IsUsableMounted())
@@ -1694,7 +1694,7 @@ void GameObject::Use(Unit* user)
{
itr->second = player->GetGUID(); //this slot in now used by player
player->TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET);
- player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->chair.height);
+ player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->chair.height));
return;
}
}
@@ -2135,7 +2135,7 @@ void GameObject::Use(Unit* user)
WorldPacket data(SMSG_ENABLE_BARBER_SHOP, 0);
player->SendDirectMessage(&data);
- player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->barberChair.chairheight);
+ player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight));
return;
}
default:
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index ec0547c2aaa..84128744eee 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -89,6 +89,9 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
void RemoveFromWorld() override;
void CleanupsBeforeDelete(bool finalCleanup = true) override;
+ uint32 GetDynamicFlags() const override { return GetUInt32Value(GAMEOBJECT_DYNAMIC); }
+ void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(GAMEOBJECT_DYNAMIC, flag); }
+
bool Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, uint32 phaseMask, Position const& pos, QuaternionData const& rotation, uint32 animprogress, GOState go_state, uint32 artKit = 0, bool dynamic = false, ObjectGuid::LowType spawnid = 0);
void Update(uint32 p_time) override;
GameObjectTemplate const* GetGOInfo() const { return m_goInfo; }
diff --git a/src/server/game/Entities/Object/MovementInfo.h b/src/server/game/Entities/Object/MovementInfo.h
index 40cad80f3dc..e399be0ac0c 100644
--- a/src/server/game/Entities/Object/MovementInfo.h
+++ b/src/server/game/Entities/Object/MovementInfo.h
@@ -85,7 +85,9 @@ struct MovementInfo
bool HasMovementFlag(uint32 flag) const { return (flags & flag) != 0; }
uint16 GetExtraMovementFlags() const { return flags2; }
+ void SetExtraMovementFlags(uint16 flag) { flags2 = flag; }
void AddExtraMovementFlag(uint16 flag) { flags2 |= flag; }
+ void RemoveExtraMovementFlag(uint16 flag) { flags2 &= ~flag; }
bool HasExtraMovementFlag(uint16 flag) const { return (flags2 & flag) != 0; }
void SetFallTime(uint32 val) { fallTime = val; }
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7cc0625c247..cbc5f448e11 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -550,7 +550,7 @@ uint32 Object::GetUpdateFieldData(Player const* target, uint32*& flags) const
if (ToUnit()->GetOwnerGUID() == target->GetGUID())
visibleFlag |= UF_FLAG_OWNER;
- if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO))
+ if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
if (ToUnit()->HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
visibleFlag |= UF_FLAG_SPECIAL_INFO;
@@ -1941,7 +1941,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert
return nullptr;
}
- summon->SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId);
+ summon->SetCreatedBySpell(spellId);
summon->SetHomePosition(pos);
@@ -2671,9 +2671,9 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const
Unit const* unit = Coalesce<const Unit>(ToUnit(), selfPlayerOwner);
Unit const* targetUnit = Coalesce<const Unit>(target->ToUnit(), targetPlayerOwner);
- if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
- if (targetUnit && targetUnit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (targetUnit && targetUnit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
if (selfPlayerOwner && targetPlayerOwner)
{
@@ -2702,7 +2702,7 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const
{
if (ReputationRank const* repRank = selfPlayerOwner->GetReputationMgr().GetForcedRankIfAny(targetFactionTemplateEntry))
return *repRank;
- if (!selfPlayerOwner->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_IGNORE_REPUTATION))
+ if (!selfPlayerOwner->HasUnitFlag2(UNIT_FLAG2_IGNORE_REPUTATION))
{
if (FactionEntry const* targetFactionEntry = sFactionStore.LookupEntry(targetFactionTemplateEntry->Faction))
{
@@ -2747,7 +2747,7 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const
return REP_HOSTILE;
if (ReputationRank const* repRank = targetPlayerOwner->GetReputationMgr().GetForcedRankIfAny(factionTemplateEntry))
return *repRank;
- if (target->ToUnit() && !target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_IGNORE_REPUTATION))
+ if (target->IsUnit() && !target->ToUnit()->HasUnitFlag2(UNIT_FLAG2_IGNORE_REPUTATION))
{
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplateEntry->Faction))
{
@@ -2892,7 +2892,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
return false;
// can't attack untargetable
- if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
return false;
if (Player const* playerAttacker = ToPlayer())
@@ -2902,7 +2902,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
}
// check flags
- if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
+ if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
return false;
Unit const* unitOrOwner = unit;
@@ -2913,29 +2913,29 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
// ignore immunity flags when assisting
if (unitOrOwner && unitTarget && !(isPositiveSpell && bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG)))
{
- if (!unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToNPC())
+ if (!unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToNPC())
return false;
- if (!unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToNPC())
+ if (!unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToNPC())
return false;
- if (unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToPC())
+ if (unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget->IsImmuneToPC())
return false;
- if (unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToPC())
+ if (unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner->IsImmuneToPC())
return false;
}
// CvC case - can attack each other only when one of them is hostile
- if (unit && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && !unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unit && !unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
return IsHostileTo(unitTarget) || unitTarget->IsHostileTo(this);
// Traps without owner or with NPC owner versus Creature case - can attack to creature only when one of them is hostile
if (go && go->GetGoType() == GAMEOBJECT_TYPE_TRAP)
{
Unit const* goOwner = go->GetOwner();
- if (!goOwner || !goOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
- if (unitTarget && !unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (!goOwner || !goOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
return IsHostileTo(unitTarget) || unitTarget->IsHostileTo(this);
}
@@ -2944,8 +2944,8 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
if (IsFriendlyTo(target) || target->IsFriendlyTo(this))
return false;
- Player const* playerAffectingAttacker = unit && HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) ? GetAffectingPlayer() : go ? GetAffectingPlayer() : nullptr;
- Player const* playerAffectingTarget = unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) ? unitTarget->GetAffectingPlayer() : nullptr;
+ Player const* playerAffectingAttacker = unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? GetAffectingPlayer() : go ? GetAffectingPlayer() : nullptr;
+ Player const* playerAffectingTarget = unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? unitTarget->GetAffectingPlayer() : nullptr;
// Not all neutral creatures can be attacked (even some unfriendly faction does not react aggresive to you, like Sporaggar)
if ((playerAffectingAttacker && !playerAffectingTarget) || (!playerAffectingAttacker && playerAffectingTarget))
@@ -2979,7 +2979,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
// PvP case - can't attack when attacker or target are in sanctuary
// however, 13850 client doesn't allow to attack when one of the unit's has sanctuary flag and is pvp
- if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner && unitOrOwner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && (unitTarget->IsInSanctuary() || unitOrOwner->IsInSanctuary()))
+ if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitOrOwner && unitOrOwner->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && (unitTarget->IsInSanctuary() || unitOrOwner->IsInSanctuary()))
return false;
// additional checks - only PvP case
@@ -2991,8 +2991,8 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
if (playerAffectingAttacker->IsFFAPvP() && playerAffectingTarget->IsFFAPvP())
return true;
- return playerAffectingAttacker->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_UNK1) ||
- playerAffectingTarget->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_UNK1);
+ return playerAffectingAttacker->HasPvpFlag(UNIT_BYTE2_FLAG_UNK1) ||
+ playerAffectingTarget->HasPvpFlag(UNIT_BYTE2_FLAG_UNK1);
}
return true;
@@ -3039,16 +3039,16 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const
return false;
// can't assist untargetable
- if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if ((!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE)) && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
return false;
// check flags for negative spells
- if (isNegativeSpell && unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
+ if (isNegativeSpell && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
return false;
if (isNegativeSpell || !bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
{
- if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
if (unitTarget && unitTarget->IsImmuneToPC())
return false;
@@ -3065,9 +3065,9 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const
return false;
// PvP case
- if (unitTarget && unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
- if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
Player const* selfPlayerOwner = GetAffectingPlayer();
Player const* targetPlayerOwner = unitTarget->GetAffectingPlayer();
@@ -3088,8 +3088,8 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const
}
}
// PvC case - player can assist creature only if has specific type flags
- // !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) &&
- else if (unit && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ // !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) &&
+ else if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
{
if (!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
if (unitTarget && !unitTarget->IsPvP())
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 907e7b47f35..7a32337a74b 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -82,6 +82,12 @@ class TC_GAME_API Object
float GetObjectScale() const { return GetFloatValue(OBJECT_FIELD_SCALE_X); }
virtual void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); }
+ virtual uint32 GetDynamicFlags() const { return 0; }
+ bool HasDynamicFlag(uint32 flag) const { return (GetDynamicFlags() & flag) != 0; }
+ virtual void SetDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() | flag); }
+ virtual void RemoveDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() & ~flag); }
+ virtual void ReplaceAllDynamicFlags([[maybe_unused]] uint32 flag) { }
+
TypeID GetTypeId() const { return m_objectTypeId; }
bool isType(uint16 mask) const { return (mask & m_objectType) != 0; }
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 711feb9718c..26297f26f63 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -228,7 +228,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
setPetType(petInfo->Type);
SetFaction(owner->GetFaction());
- SetUInt32Value(UNIT_CREATED_BY_SPELL, petInfo->CreatedBySpellId);
+ SetCreatedBySpell(petInfo->CreatedBySpellId);
if (IsCritter())
{
@@ -252,26 +252,22 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
SetDisplayId(petInfo->DisplayId);
SetNativeDisplayId(petInfo->DisplayId);
uint8 petlevel = petInfo->Level;
- SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
SetName(petInfo->Name);
switch (getPetType())
{
case SUMMON_PET:
petlevel = owner->GetLevel();
-
SetClass(CLASS_MAGE);
- SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
- // this enables popup window (pet dismiss, cancel)
+ ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet dismiss, cancel)
break;
case HUNTER_PET:
SetClass(CLASS_WARRIOR);
SetGender(GENDER_NONE);
SetSheath(SHEATH_STATE_MELEE);
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, petInfo->WasRenamed ? UNIT_CAN_BE_ABANDONED : UNIT_CAN_BE_RENAMED | UNIT_CAN_BE_ABANDONED);
-
- SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
- // this enables popup window (pet abandon, cancel)
+ ReplaceAllPetFlags(petInfo->WasRenamed ? UNIT_PET_FLAG_CAN_BE_ABANDONED : (UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED));
+ ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet abandon, cancel)
SetMaxPower(POWER_HAPPINESS, GetCreatePowerValue(POWER_HAPPINESS));
SetPower(POWER_HAPPINESS, petInfo->Happiness);
break;
@@ -281,11 +277,11 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
break;
}
- SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped here
+ SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped here
SetCreatorGUID(owner->GetGUID());
InitStatsForLevel(petlevel);
- SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, petInfo->Experience);
+ SetPetExperience(petInfo->Experience);
SynchronizeLevelWithOwner();
@@ -518,7 +514,7 @@ void Pet::SavePetToDB(PetSaveMode mode)
stmt->setUInt8(6, GetReactState());
stmt->setUInt8(7, mode);
stmt->setString(8, m_name);
- stmt->setUInt8(9, HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED) ? 0 : 1);
+ stmt->setUInt8(9, HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED) ? 0 : 1);
stmt->setUInt32(10, curhealth);
stmt->setUInt32(11, curmana);
stmt->setUInt32(12, GetPower(POWER_HAPPINESS));
@@ -547,7 +543,7 @@ void Pet::FillPetInfo(PetStable::PetInfo* petInfo) const
petInfo->Experience = GetUInt32Value(UNIT_FIELD_PETEXPERIENCE);
petInfo->ReactState = GetReactState();
petInfo->Name = GetName();
- petInfo->WasRenamed = !HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED);
+ petInfo->WasRenamed = !HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED);
petInfo->Health = GetHealth();
petInfo->Mana = GetPower(POWER_MANA);
petInfo->Happiness = GetPower(POWER_HAPPINESS);
@@ -592,19 +588,19 @@ void Pet::setDeathState(DeathState s) // overwrite virtual
if (getPetType() == HUNTER_PET)
{
// pet corpse non lootable and non skinnable
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
+ RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
// lose happiness when died and not in BG/Arena
if (!GetMap()->IsBattlegroundOrArena())
ModifyPower(POWER_HAPPINESS, -HAPPINESS_LEVEL_SIZE);
- //SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ //SetUnitFlag(UNIT_FLAG_STUNNED);
}
}
else if (getDeathState() == ALIVE)
{
- //RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ //RemoveUnitFlag(UNIT_FLAG_STUNNED);
CastPetAuras(true);
}
}
@@ -773,7 +769,7 @@ void Pet::GivePetXP(uint32 xp)
nextLvlXP = GetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP);
}
// Not affected by special conditions - give it new XP
- SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, petlevel < maxlevel ? newXP : 0);
+ SetPetExperience(petlevel < maxlevel ? newXP : 0);
}
void Pet::GivePetLevel(uint8 level)
@@ -783,8 +779,8 @@ void Pet::GivePetLevel(uint8 level)
if (getPetType() == HUNTER_PET)
{
- SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
- SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32(sObjectMgr->GetXPForLevel(level)*PET_XP_FACTOR));
+ SetPetExperience(0);
+ SetPetNextLevelExperience(uint32(sObjectMgr->GetXPForLevel(level)*PET_XP_FACTOR));
}
InitStatsForLevel(level);
@@ -848,17 +844,17 @@ bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phas
SetMaxPower(POWER_HAPPINESS, GetCreatePowerValue(POWER_HAPPINESS));
SetPower(POWER_HAPPINESS, 166500);
- SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, 0);
- SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
- SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32(sObjectMgr->GetXPForLevel(GetLevel()+1)*PET_XP_FACTOR));
- SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ SetPetNameTimestamp(0);
+ SetPetExperience(0);
+ SetPetNextLevelExperience(uint32(sObjectMgr->GetXPForLevel(GetLevel()+1)*PET_XP_FACTOR));
+ ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
if (cinfo->type == CREATURE_TYPE_BEAST)
{
SetClass(CLASS_WARRIOR);
SetGender(GENDER_NONE);
SetSheath(SHEATH_STATE_MELEE);
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED | UNIT_CAN_BE_ABANDONED);
+ ReplaceAllPetFlags(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED);
}
return true;
@@ -904,7 +900,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel)
SetAttackTime(OFF_ATTACK, BASE_ATTACK_TIME);
SetAttackTime(RANGED_ATTACK, BASE_ATTACK_TIME);
- SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
+ SetModCastingSpeed(1.0f);
//scale
SetObjectScale(GetNativeObjectScale());
@@ -1885,7 +1881,7 @@ bool Pet::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32
return false;
// Force regen flag for player pets, just like we do for players themselves
- SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER);
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
SetSheath(SHEATH_STATE_MELEE);
GetThreatManager().Initialize();
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index fb669dd943d..7828cdc23cb 100644
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -83,6 +83,8 @@ class TC_GAME_API Pet : public Guardian
HappinessState GetHappinessState();
void GivePetXP(uint32 xp);
void GivePetLevel(uint8 level);
+ void SetPetExperience(uint32 xp) { SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, xp); }
+ void SetPetNextLevelExperience(uint32 xp) { SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, xp); }
void SynchronizeLevelWithOwner();
bool HaveInDiet(ItemTemplate const* item) const;
uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel) const;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 9ec2fc4e1c5..2ab7e8f9b92 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -508,17 +508,17 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo
SetRace(createInfo->Race);
SetClass(createInfo->Class);
- SetGender(createInfo->Gender);
+ SetGender(Gender(createInfo->Gender));
SetPowerType(Powers(powertype), false);
InitDisplayIds();
if (sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_PVP || sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_RPPVP)
{
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP);
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ SetPvpFlag(UNIT_BYTE2_FLAG_PVP);
+ SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
- SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER);
- SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); // fix cast time showed in spell tooltip on client
- SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f); // default for players in 3.0.3
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
+ SetModCastingSpeed(1.0f); // fix cast time showed in spell tooltip on client
+ SetHoverHeight(1.0f); // default for players in 3.0.3
SetInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1)); // -1 is default value
@@ -528,7 +528,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo
SetHairColorId(createInfo->HairColor);
SetFacialStyle(createInfo->FacialHair);
SetRestState((GetSession()->IsARecruiter() || GetSession()->GetRecruiterId() != 0) ? REST_STATE_RAF_LINKED : REST_STATE_NOT_RAF_LINKED);
- SetNativeGender(createInfo->Gender);
+ SetNativeGender(Gender(createInfo->Gender));
SetArenaFaction(0);
SetUInt32Value(PLAYER_GUILDID, 0);
@@ -1972,8 +1972,8 @@ void Player::RemoveFromWorld()
void Player::SetObjectScale(float scale)
{
Unit::SetObjectScale(scale);
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, scale * DEFAULT_PLAYER_BOUNDING_RADIUS);
- SetFloatValue(UNIT_FIELD_COMBATREACH, scale * DEFAULT_PLAYER_COMBAT_REACH);
+ SetBoundingRadius(scale * DEFAULT_PLAYER_BOUNDING_RADIUS);
+ SetCombatReach(scale * DEFAULT_PLAYER_COMBAT_REACH);
}
bool Player::IsImmunedToSpellEffect(SpellInfo const* spellInfo, SpellEffectInfo const& spellEffectInfo, WorldObject const* caster) const
@@ -2256,7 +2256,7 @@ bool Player::CanInteractWithQuestGiver(Object* questGiver) const
return false;
}
-Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflagmask) const
+Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, NPCFlags npcFlags) const
{
// unit checks
if (!guid)
@@ -2282,7 +2282,7 @@ Creature* Player::GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflag
return nullptr;
// appropriate npc type
- if (npcflagmask && !creature->HasFlag(UNIT_NPC_FLAGS, npcflagmask))
+ if (npcFlags && !creature->HasNpcFlag(npcFlags))
return nullptr;
// not allow interaction under control, but allow with own pets
@@ -2367,12 +2367,12 @@ void Player::SetGameMaster(bool on)
m_ExtraFlags |= PLAYER_EXTRA_GM_ON;
SetFaction(FACTION_FRIENDLY);
SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM);
- SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
+ SetUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
if (Pet* pet = GetPet())
pet->SetFaction(FACTION_FRIENDLY);
- RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
ResetContestedPvP();
CombatStopWithPets();
@@ -2397,14 +2397,14 @@ void Player::SetGameMaster(bool on)
m_ExtraFlags &= ~ PLAYER_EXTRA_GM_ON;
SetFactionForRace(GetRace());
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM);
- RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
+ RemoveUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
if (Pet* pet = GetPet())
pet->SetFaction(GetFaction());
// restore FFA PvP Server state
if (sWorld->IsFFAPvPRealm())
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
// restore FFA PvP area state, remove not allowed for GM mounts
UpdateArea(m_areaUpdateId);
@@ -2733,7 +2733,7 @@ void Player::InitStatsForLevel(bool reapplyMods)
UpdateSkillsForLevel();
// set default cast time multiplier
- SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
+ SetModCastingSpeed(1.0f);
// reset size before reapply auras
SetObjectScale(1.0f);
@@ -2777,12 +2777,12 @@ void Player::InitStatsForLevel(bool reapplyMods)
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE, 0.0f);
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE, 0.0f);
- SetInt32Value(UNIT_FIELD_ATTACK_POWER, 0);
- SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, 0);
- SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, 0.0f);
- SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, 0);
- SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 0);
- SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER, 0.0f);
+ SetAttackPower(0);
+ SetAttackPowerModPos(0);
+ SetAttackPowerMultiplier(0.0f);
+ SetRangedAttackPower(0);
+ SetRangedAttackPowerModPos(0);
+ SetRangedAttackPowerMultiplier(0.0f);
// Base crit values (will be recalculated in UpdateAllStats() at loading and in _ApplyAllStatBonuses() at reset
SetFloatValue(PLAYER_CRIT_PERCENTAGE, 0.0f);
@@ -2832,25 +2832,25 @@ void Player::InitStatsForLevel(bool reapplyMods)
SetMaxHealth(classInfo.basehealth); // stamina bonus will applied later
// cleanup mounted state (it will set correctly at aura loading if player saved at mount.
- SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
+ SetMountDisplayId(0);
// cleanup unit flags (will be re-applied if need at aura load).
- RemoveFlag(UNIT_FIELD_FLAGS,
+ RemoveUnitFlag(
UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_ATTACKABLE_1 |
UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_LOOTING |
UNIT_FLAG_PET_IN_COMBAT | UNIT_FLAG_SILENCED | UNIT_FLAG_PACIFIED |
UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED |
UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_UNINTERACTIBLE |
UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_ON_TAXI );
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); // must be set
+ SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); // must be set
- SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER);// must be set
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);// must be set
// cleanup player flags (will be re-applied if need at aura load), to avoid have ghost flag without ghost aura, for example.
RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST | PLAYER_ALLOW_ONLY_ABILITY);
- RemoveStandFlags(UNIT_STAND_FLAGS_ALL); // one form stealth modified bytes
- RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY);
+ RemoveVisFlag(UNIT_VIS_FLAGS_ALL); // one form stealth modified bytes
+ RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY);
// restore if need some important flags
SetUInt32Value(PLAYER_FIELD_BYTES2, 0); // flags empty by default
@@ -4530,7 +4530,7 @@ void Player::BuildPlayerRepop()
SetMovement(MOVE_UNROOT);
// BG - remove insignia related
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
int32 corpseReclaimDelay = CalculateCorpseReclaimDelay();
@@ -4562,7 +4562,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
- SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
+ SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
setDeathState(ALIVE);
@@ -4641,9 +4641,9 @@ void Player::KillPlayer()
StopMirrorTimers(); //disable timers(bars)
setDeathState(CORPSE);
- //SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_IN_PVP);
+ //SetUnitFlag(UNIT_FLAG_NOT_IN_PVP);
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
+ ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION));
// 6 minutes until repop at graveyard
@@ -7010,13 +7010,13 @@ void Player::UpdateArea(uint32 newArea)
pvpInfo.IsInNoPvPArea = false;
if (area && area->IsSanctuary()) // in sanctuary
{
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY);
+ SetPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY);
pvpInfo.IsInNoPvPArea = true;
if (!duel && GetCombatManager().HasPvPCombat())
CombatStopWithPets();
}
else
- RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY);
+ RemovePvpFlag(UNIT_BYTE2_FLAG_SANCTUARY);
uint32 const areaRestFlag = (GetTeam() == ALLIANCE) ? AREA_FLAG_REST_ZONE_ALLIANCE : AREA_FLAG_REST_ZONE_HORDE;
if (area && area->Flags & areaRestFlag)
@@ -8620,7 +8620,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
else
{
// exploit fix
- if (!creature->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE))
+ if (!creature->HasDynamicFlag(UNIT_DYNFLAG_LOOTABLE))
{
SendLootError(guid, LOOT_ERROR_DIDNT_KILL);
return;
@@ -8734,7 +8734,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
loot->AddLooter(GetGUID());
if (loot_type == LOOT_CORPSE && !guid.IsItem())
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_LOOTING);
+ SetUnitFlag(UNIT_FLAG_LOOTING);
}
else
SendLootError(GetLootGUID(), LOOT_ERROR_DIDNT_KILL);
@@ -13444,7 +13444,7 @@ void Player::SendSellError(SellResult msg, Creature* creature, ObjectGuid guid,
bool Player::IsUseEquipedWeapon(bool mainhand) const
{
// disarm applied only to mainhand weapon
- return !IsInFeralForm() && (!mainhand || !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED));
+ return !IsInFeralForm() && (!mainhand || !HasUnitFlag(UNIT_FLAG_DISARMED));
}
void Player::SetCanTitanGrip(bool value, uint32 penaltySpellId /*= 0*/)
@@ -14322,7 +14322,7 @@ void Player::SendPreparedGossip(WorldObject* source)
if (source->GetTypeId() == TYPEID_UNIT)
{
// in case no gossip flag and quest menu not empty, open quest menu (client expect gossip menu with this flag)
- if (!source->ToCreature()->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) && !PlayerTalkClass->GetQuestMenu().Empty())
+ if (!source->ToCreature()->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP) && !PlayerTalkClass->GetQuestMenu().Empty())
{
SendPreparedQuest(source->GetGUID());
return;
@@ -16928,7 +16928,7 @@ void Player::SendQuestGiverStatusMultiple()
Creature* questgiver = ObjectAccessor::GetCreatureOrPetOrVehicle(*this, *itr);
if (!questgiver || questgiver->IsHostileTo(this))
continue;
- if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
+ if (!questgiver->HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER))
continue;
questStatus = GetQuestDialogStatus(questgiver);
@@ -17197,10 +17197,10 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
// overwrite possible wrong/corrupted guid
SetGuidValue(OBJECT_FIELD_GUID, guid);
- uint8 gender = fields[5].GetUInt8();
+ Gender gender = Gender(fields[5].GetUInt8());
if (!IsValidGender(gender))
{
- TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player (%s) has wrong gender (%u), can't load.", guid.ToString().c_str(), gender);
+ TC_LOG_ERROR("entities.player.loading", "Player::LoadFromDB: Player (%s) has wrong gender (%u), can't load.", guid.ToString().c_str(), uint32(gender));
return false;
}
@@ -17226,7 +17226,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
TC_LOG_WARN("entities.player.loading", "Player::LoadFromDB: Player (%s) has invalid knowntitles mask (%s). Forcing partial load.", guid.ToString().c_str(), fields[69].GetCString());
SetObjectScale(1.0f);
- SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
+ SetHoverHeight(1.0f);
// load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria)
m_achievementMgr->LoadFromDB(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS));
@@ -17243,7 +17243,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
SetFacialStyle(fields[13].GetUInt8());
SetBankBagSlotCount(fields[14].GetUInt8());
SetRestState(fields[15].GetUInt8());
- SetNativeGender(fields[5].GetUInt8());
+ SetNativeGender(Gender(fields[5].GetUInt8()));
SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_INEBRIATION, fields[54].GetUInt8());
if (!ValidateAppearance(
@@ -17660,7 +17660,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
// clear channel spell data (if saved at channel spell casting)
SetChannelObjectGuid(ObjectGuid::Empty);
- SetUInt32Value(UNIT_CHANNEL_SPELL, 0);
+ SetChannelSpellId(0);
// clear charm/summon related fields
SetOwnerGUID(ObjectGuid::Empty);
@@ -17670,7 +17670,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
SetGuidValue(PLAYER_FARSIGHT, ObjectGuid::Empty);
SetCreatorGUID(ObjectGuid::Empty);
- RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT);
+ RemoveUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
// reset some aura modifiers before aura apply
SetUInt32Value(PLAYER_TRACK_CREATURES, 0);
@@ -17857,7 +17857,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
// RaF stuff.
m_grantableLevels = fields[71].GetUInt8();
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
- SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
+ SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
if (m_grantableLevels > 0)
SetByteValue(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTES_OFFSET_RAF_GRANTABLE_LEVEL, 0x01);
@@ -21307,7 +21307,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
return false;
}
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL))
+ if (HasUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL))
return false;
// taximaster case
@@ -21502,7 +21502,7 @@ void Player::CleanupAfterTaxiFlight()
{
m_taxi.ClearTaxiDestinations(); // not destinations, clear source node
Dismount();
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
+ RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
}
void Player::ContinueTaxiFlight() const
@@ -21564,7 +21564,7 @@ void Player::SendTaxiNodeStatusMultiple()
Creature* creature = ObjectAccessor::GetCreature(*this, *itr);
if (!creature || creature->IsHostileTo(this))
continue;
- if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER))
+ if (!creature->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER))
continue;
uint32 nearestNode = sObjectMgr->GetNearestTaxiNode(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), creature->GetMapId(), GetTeam());
if (!nearestNode)
@@ -21935,16 +21935,16 @@ void Player::UpdatePvPState(bool onlyFFA)
{
if (!IsFFAPvP())
{
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
for (ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
- (*itr)->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ (*itr)->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
}
}
else if (IsFFAPvP())
{
- RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
for (ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
- (*itr)->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ (*itr)->RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
}
if (onlyFFA)
@@ -22478,7 +22478,7 @@ void Player::UpdateTriggerVisibility()
{
Creature* creature = GetMap()->GetCreature(*itr);
// Update fields of triggers, transformed units or uninteractible units (values dependent on GM state)
- if (!creature || (!creature->IsTrigger() && !creature->HasAuraType(SPELL_AURA_TRANSFORM) && !creature->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE)))
+ if (!creature || (!creature->IsTrigger() && !creature->HasAuraType(SPELL_AURA_TRANSFORM) && !creature->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE)))
continue;
creature->SetFieldNotifyFlag(UF_FLAG_PUBLIC);
@@ -23191,14 +23191,14 @@ void Player::LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue)
void Player::SendAurasForTarget(Unit* target) const
{
- if (!target || target->GetVisibleAuras()->empty()) // speedup things
+ if (!target || target->GetVisibleAuras().empty()) // speedup things
return;
WorldPacket data(SMSG_AURA_UPDATE_ALL);
data << target->GetPackGUID();
- Unit::VisibleAuraMap const* visibleAuras = target->GetVisibleAuras();
- for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras->begin(); itr != visibleAuras->end(); ++itr)
+ Unit::VisibleAuraMap const& visibleAuras = target->GetVisibleAuras();
+ for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras.begin(); itr != visibleAuras.end(); ++itr)
{
AuraApplication * auraApp = itr->second;
auraApp->BuildUpdatePacket(data, false);
@@ -23551,7 +23551,7 @@ void Player::UpdateVisibleGameobjectsOrSpellClicks()
continue;
// check if this unit requires quest specific flags
- if (!obj->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK))
+ if (!obj->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK))
continue;
auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(obj->GetEntry());
@@ -23741,7 +23741,7 @@ bool Player::CanNoReagentCast(SpellInfo const* spellInfo) const
{
// don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP
if (spellInfo->HasAttribute(SPELL_ATTR5_NO_REAGENT_WHILE_PREP) &&
- HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION))
+ HasUnitFlag(UNIT_FLAG_PREPARATION))
return true;
// Check no reagent use mask
@@ -25505,7 +25505,7 @@ bool Player::IsPetNeedBeTemporaryUnsummoned() const
bool Player::CanSeeSpellClickOn(Creature const* c) const
{
- if (!c->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK))
+ if (!c->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK))
return false;
auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(c->GetEntry());
@@ -26780,8 +26780,7 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy
pet->SetCreatorGUID(GetGUID());
pet->SetFaction(GetFaction());
- pet->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
- pet->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pet->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
pet->InitStatsForLevel(GetLevel());
SetMinion(pet, true);
@@ -26792,11 +26791,11 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy
// this enables pet details window (Shift+P)
pet->GetCharmInfo()->SetPetNumber(pet_number, true);
pet->SetClass(CLASS_MAGE);
- pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
- pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000);
+ pet->SetPetExperience(0);
+ pet->SetPetNextLevelExperience(1000);
pet->SetFullHealth();
pet->SetPower(POWER_MANA, pet->GetMaxPower(POWER_MANA));
- pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped in this case
+ pet->SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped in this case
break;
default:
break;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 376ebe3f72e..b4aafb4c65c 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -926,7 +926,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time, bool welcome) const;
bool CanInteractWithQuestGiver(Object* questGiver) const;
- Creature* GetNPCIfCanInteractWith(ObjectGuid const& guid, uint32 npcflagmask) const;
+ Creature* GetNPCIfCanInteractWith(ObjectGuid const& guid, NPCFlags npcFlags) const;
GameObject* GetGameObjectIfCanInteractWith(ObjectGuid const& guid) const;
GameObject* GetGameObjectIfCanInteractWith(ObjectGuid const& guid, GameobjectTypes type) const;
@@ -996,8 +996,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint32 GetTotalPlayedTime() const { return m_Played_time[PLAYED_TIME_TOTAL]; }
uint32 GetLevelPlayedTime() const { return m_Played_time[PLAYED_TIME_LEVEL]; }
- uint8 GetNativeGender() const override { return GetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER); }
- void SetNativeGender(uint8 gender) override { SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER, gender); }
+ Gender GetNativeGender() const override { return Gender(GetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER)); }
+ void SetNativeGender(Gender gender) override { SetByteValue(PLAYER_BYTES_3, PLAYER_BYTES_3_OFFSET_GENDER, gender); }
uint8 GetSkinId() const { return GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID); }
void SetSkinId(uint8 skin) { SetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID, skin); }
uint8 GetFaceId() const { return GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_FACE_ID); }
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 9364d71e2a6..f1d45b935a4 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -475,7 +475,7 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu
return nullptr;
}
- summon->SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId);
+ summon->SetCreatedBySpell(spellId);
summon->SetTransport(this);
summon->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index c1939f60dd5..142affc27cf 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -341,16 +341,8 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER;
- uint16 index = UNIT_FIELD_ATTACK_POWER;
- uint16 index_mod = UNIT_FIELD_ATTACK_POWER_MODS;
- uint16 index_mult = UNIT_FIELD_ATTACK_POWER_MULTIPLIER;
-
if (ranged)
{
- index = UNIT_FIELD_RANGED_ATTACK_POWER;
- index_mod = UNIT_FIELD_RANGED_ATTACK_POWER_MODS;
- index_mult = UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER;
-
switch (GetClass())
{
case CLASS_HUNTER:
@@ -480,9 +472,18 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
float attPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f;
- SetInt32Value(index, (uint32)base_attPower); //UNIT_FIELD_(RANGED)_ATTACK_POWER field
- SetInt32Value(index_mod, (uint32)attPowerMod); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
- SetFloatValue(index_mult, attPowerMultiplier); //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
+ if (ranged)
+ {
+ SetRangedAttackPower(int32(base_attPower));
+ SetRangedAttackPowerModPos(int32(attPowerMod));
+ SetRangedAttackPowerMultiplier(attPowerMultiplier);
+ }
+ else
+ {
+ SetAttackPower(int32(base_attPower));
+ SetAttackPowerModPos(int32(attPowerMod));
+ SetAttackPowerMultiplier(attPowerMultiplier);
+ }
Pet* pet = GetPet(); //update pet's AP
Guardian* guardian = GetGuardianPet();
@@ -1043,24 +1044,22 @@ void Creature::UpdateAttackPowerAndDamage(bool ranged)
{
UnitMods unitMod = ranged ? UNIT_MOD_ATTACK_POWER_RANGED : UNIT_MOD_ATTACK_POWER;
- uint16 index = UNIT_FIELD_ATTACK_POWER;
- uint16 indexMod = UNIT_FIELD_ATTACK_POWER_MODS;
- uint16 indexMulti = UNIT_FIELD_ATTACK_POWER_MULTIPLIER;
-
- if (ranged)
- {
- index = UNIT_FIELD_RANGED_ATTACK_POWER;
- indexMod = UNIT_FIELD_RANGED_ATTACK_POWER_MODS;
- indexMulti = UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER;
- }
-
float baseAttackPower = GetFlatModifierValue(unitMod, BASE_VALUE) * GetPctModifierValue(unitMod, BASE_PCT);
float attackPowerMod = GetFlatModifierValue(unitMod, TOTAL_VALUE);
float attackPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f;
- SetInt32Value(index, uint32(baseAttackPower)); // UNIT_FIELD_(RANGED)_ATTACK_POWER
- SetInt32Value(indexMod, uint32(attackPowerMod)); // UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS
- SetFloatValue(indexMulti, attackPowerMultiplier); // UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER
+ if (ranged)
+ {
+ SetRangedAttackPower(int32(baseAttackPower));
+ SetRangedAttackPowerModPos(int32(attackPowerMod));
+ SetRangedAttackPowerMultiplier(attackPowerMultiplier);
+ }
+ else
+ {
+ SetAttackPower(int32(baseAttackPower));
+ SetAttackPowerModPos(int32(attackPowerMod));
+ SetAttackPowerMultiplier(attackPowerMultiplier);
+ }
// automatically update weapon damage after attack power modification
if (ranged)
@@ -1423,12 +1422,9 @@ void Guardian::UpdateAttackPowerAndDamage(bool ranged)
float attPowerMod = GetFlatModifierValue(unitMod, TOTAL_VALUE);
float attPowerMultiplier = GetPctModifierValue(unitMod, TOTAL_PCT) - 1.0f;
- //UNIT_FIELD_(RANGED)_ATTACK_POWER field
- SetInt32Value(UNIT_FIELD_ATTACK_POWER, (int32)base_attPower);
- //UNIT_FIELD_(RANGED)_ATTACK_POWER_MODS field
- SetInt32Value(UNIT_FIELD_ATTACK_POWER_MODS, (int32)attPowerMod);
- //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
- SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attPowerMultiplier);
+ SetAttackPower(int32(base_attPower));
+ SetAttackPowerModPos(int32(attPowerMod));
+ SetAttackPowerMultiplier(attPowerMultiplier);
//automatically update weapon damage after attack power modification
UpdateDamagePhysical(BASE_ATTACK);
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index ba811094c58..13ef25a631d 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -301,7 +301,7 @@ Unit::Unit(bool isWorldObject) :
m_removedAurasCount(0), m_charmer(nullptr), m_charmed(nullptr),
i_motionMaster(new MotionMaster(this)), m_regenTimer(0), m_vehicle(nullptr), m_vehicleKit(nullptr),
m_unitTypeMask(UNIT_MASK_NONE), m_Diminishing(), m_combatManager(this), m_threatManager(this),
- m_aiLocked(false), m_comboTarget(nullptr), m_comboPoints(0), m_spellHistory(new SpellHistory(this))
+ m_aiLocked(false), m_comboTarget(nullptr), m_comboPoints(0), _spellHistory(new SpellHistory(this))
{
m_objectType |= TYPEMASK_UNIT;
m_objectTypeId = TYPEID_UNIT;
@@ -412,7 +412,7 @@ Unit::~Unit()
delete i_motionMaster;
delete m_charmInfo;
delete movespline;
- delete m_spellHistory;
+ delete _spellHistory;
ASSERT(!m_duringRemoveFromWorld);
ASSERT(!m_attacking);
@@ -659,14 +659,14 @@ void Unit::UpdateInterruptMask()
m_interruptMask |= spell->m_spellInfo->ChannelInterruptFlags;
}
-bool Unit::HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, uint32 familyFlags) const
+bool Unit::HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, flag96 familyFlags) const
{
if (!HasAuraType(auraType))
return false;
AuraEffectList const& auras = GetAuraEffectsByType(auraType);
for (AuraEffectList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
if (SpellInfo const* iterSpellProto = (*itr)->GetSpellInfo())
- if (iterSpellProto->SpellFamilyName == familyName && iterSpellProto->SpellFamilyFlags[0] & familyFlags)
+ if (iterSpellProto->SpellFamilyName == familyName && iterSpellProto->SpellFamilyFlags & familyFlags)
return true;
return false;
}
@@ -1109,7 +1109,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama
damageInfo->damage = dmgInfo.GetDamage();
}
-void Unit::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss)
+void Unit::DealSpellDamage(SpellNonMeleeDamage const* damageInfo, bool durabilityLoss)
{
if (!damageInfo)
return;
@@ -2073,7 +2073,7 @@ void Unit::HandleEmoteCommand(Emote emoteId)
void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra)
{
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
+ if (HasUnitFlag(UNIT_FLAG_PACIFIED))
return;
if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra)
@@ -2094,7 +2094,7 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr
if (!extra && _lastExtraAttackSpell)
_lastExtraAttackSpell = 0;
- if (GetTypeId() == TYPEID_UNIT && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED) && !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_CANNOT_TURN))
+ if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_POSSESSED) && !HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN))
SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells)
// melee attack spell cast at main hand attack only - no normal melee dmg dealt
@@ -2413,11 +2413,11 @@ bool Unit::CanUseAttackType(uint8 attacktype) const
switch (attacktype)
{
case BASE_ATTACK:
- return !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED);
+ return !HasUnitFlag(UNIT_FLAG_DISARMED);
case OFF_ATTACK:
- return !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND);
+ return !HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND);
case RANGED_ATTACK:
- return !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_RANGED);
+ return !HasUnitFlag2(UNIT_FLAG2_DISARM_RANGED);
default:
return true;
}
@@ -2924,7 +2924,7 @@ void Unit::_UpdateSpells(uint32 time)
}
}
- m_spellHistory->Update();
+ _spellHistory->Update();
}
void Unit::_UpdateAutoRepeatSpell()
@@ -5066,17 +5066,20 @@ void Unit::_UnregisterDynObject(DynamicObject* dynObj)
m_dynObj.remove(dynObj);
}
-DynamicObject* Unit::GetDynObject(uint32 spellId)
+DynamicObject* Unit::GetDynObject(uint32 spellId) const
{
- if (m_dynObj.empty())
- return nullptr;
- for (DynObjectList::const_iterator i = m_dynObj.begin(); i != m_dynObj.end();++i)
- {
- DynamicObject* dynObj = *i;
- if (dynObj->GetSpellId() == spellId)
- return dynObj;
- }
- return nullptr;
+ std::vector<DynamicObject*> dynamicobjects = GetDynObjects(spellId);
+ return dynamicobjects.empty() ? nullptr : dynamicobjects.front();
+}
+
+std::vector<DynamicObject*> Unit::GetDynObjects(uint32 spellId) const
+{
+ std::vector<DynamicObject*> dynamicobjects;
+ for (DynObjectList::const_iterator i = m_dynObj.begin(); i != m_dynObj.end(); ++i)
+ if ((*i)->GetSpellId() == spellId)
+ dynamicobjects.push_back(*i);
+
+ return dynamicobjects;
}
void Unit::RemoveDynObject(uint32 spellId)
@@ -5104,11 +5107,18 @@ void Unit::RemoveAllDynObjects()
GameObject* Unit::GetGameObject(uint32 spellId) const
{
+ std::vector<GameObject*> gameobjects = GetGameObjects(spellId);
+ return gameobjects.empty() ? nullptr : gameobjects.front();
+}
+
+std::vector<GameObject*> Unit::GetGameObjects(uint32 spellId) const
+{
+ std::vector<GameObject*> gameobjects;
for (GameObjectList::const_iterator i = m_gameObj.begin(); i != m_gameObj.end(); ++i)
if ((*i)->GetSpellId() == spellId)
- return *i;
+ gameobjects.push_back(*i);
- return nullptr;
+ return gameobjects;
}
void Unit::AddGameObject(GameObject* gameObj)
@@ -5203,7 +5213,7 @@ void Unit::RemoveAllGameObjects()
}
}
-void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log)
+void Unit::SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const* log)
{
WorldPacket data(SMSG_SPELLNONMELEEDAMAGELOG, (16+4+4+4+1+4+4+1+1+4+4+1)); // we guess size
data << log->target->GetPackGUID();
@@ -5640,7 +5650,7 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
creature->CallAssistance();
// Remove emote state - will be restored on creature reset
- SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ SetEmoteState(EMOTE_ONESHOT_NONE);
}
// delay offhand weapon attack by 50% of the base attack time
@@ -5822,7 +5832,7 @@ void Unit::ModifyAuraState(AuraStateType flag, bool apply)
}
}
-uint32 Unit::BuildAuraStateUpdateForTarget(Unit* target) const
+uint32 Unit::BuildAuraStateUpdateForTarget(Unit const* target) const
{
uint32 auraStates = GetUInt32Value(UNIT_FIELD_AURASTATE) &~(PER_CASTER_AURA_STATE_MASK);
for (AuraStateAurasMap::const_iterator itr = m_auraStateAuras.begin(); itr != m_auraStateAuras.end(); ++itr)
@@ -5950,7 +5960,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
if (GetTypeId() == TYPEID_PLAYER)
{
minion->m_ControlledByPlayer = true;
- minion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ minion->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
// Can only have one pet. If a new one is summoned, dismiss the old one.
@@ -5983,7 +5993,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
SetCritterGUID(minion->GetGUID());
// PvP, FFAPvP
- minion->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG));
+ minion->ReplaceAllPvpFlags(GetPvpFlags());
// FIXME: hack, speed must be set only at follow
if (GetTypeId() == TYPEID_PLAYER && minion->IsPet())
@@ -6114,13 +6124,13 @@ void Unit::SetCharm(Unit* charm, bool apply)
charm->m_ControlledByPlayer = true;
/// @todo maybe we can use this flag to check if controlled by player
- charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
else
charm->m_ControlledByPlayer = false;
// PvP, FFAPvP
- charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG));
+ charm->ReplaceAllPvpFlags(GetPvpFlags());
ASSERT_WITH_SIDE_EFFECTS(charm->AddGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()),
"Unit %u is being charmed, but it already has a charmer %s", charm->GetEntry(), charm->GetCharmerGUID().ToString().c_str());
@@ -6153,20 +6163,20 @@ void Unit::SetCharm(Unit* charm, bool apply)
if (charm->GetTypeId() == TYPEID_PLAYER)
{
charm->m_ControlledByPlayer = true;
- charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
charm->ToPlayer()->UpdatePvPState();
}
else if (Player* player = charm->GetCharmerOrOwnerPlayerOrPlayerItself())
{
charm->m_ControlledByPlayer = true;
- charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
- charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, player->GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG));
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->ReplaceAllPvpFlags(player->GetPvpFlags());
}
else
{
charm->m_ControlledByPlayer = false;
- charm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
- charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, 0);
+ charm->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_NONE);
}
if (charm->IsWalking() != _isWalkingBeforeCharm)
@@ -6295,7 +6305,7 @@ void Unit::RemoveAllControlled()
if (GetCharmedGUID())
TC_LOG_FATAL("entities.unit", "Unit %u is not able to release its charm %s", GetEntry(), GetCharmedGUID().ToString().c_str());
if (!IsPet()) // pets don't use the flag for this
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // m_controlled is now empty, so we know none of our minions are in combat
+ RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // m_controlled is now empty, so we know none of our minions are in combat
}
bool Unit::isPossessedByPlayer() const
@@ -8148,9 +8158,9 @@ float Unit::GetPPMProcChance(uint32 WeaponSpeed, float PPM, SpellInfo const* spe
void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
{
if (mount)
- SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mount);
+ SetMountDisplayId(mount);
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT);
+ SetUnitFlag(UNIT_FLAG_MOUNT);
if (Player* player = ToPlayer())
{
@@ -8180,7 +8190,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
Battleground* bg = ToPlayer()->GetBattleground();
// don't unsummon pet in arena but SetFlag UNIT_FLAG_STUNNED to disable pet's interface
if (bg && bg->isArena())
- pet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ pet->SetUnitFlag(UNIT_FLAG_STUNNED);
else
player->UnsummonPetTemporaryIfAny();
}
@@ -8188,7 +8198,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
// if we have charmed npc, stun him also (everywhere)
if (Unit* charm = player->GetCharmed())
if (charm->GetTypeId() == TYPEID_UNIT)
- charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ charm->SetUnitFlag(UNIT_FLAG_STUNNED);
WorldPacket data(SMSG_MOVE_SET_COLLISION_HGT, GetPackGUID().size() + 4 + 4);
data << GetPackGUID();
@@ -8205,8 +8215,8 @@ void Unit::Dismount()
if (!IsMounted())
return;
- SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT);
+ SetMountDisplayId(0);
+ RemoveUnitFlag(UNIT_FLAG_MOUNT);
if (Player* thisPlayer = ToPlayer())
{
@@ -8242,22 +8252,22 @@ void Unit::Dismount()
{
if (Pet* pPet = player->GetPet())
{
- if (pPet->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && !pPet->HasUnitState(UNIT_STATE_STUNNED))
- pPet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ if (pPet->HasUnitFlag(UNIT_FLAG_STUNNED) && !pPet->HasUnitState(UNIT_STATE_STUNNED))
+ pPet->RemoveUnitFlag(UNIT_FLAG_STUNNED);
}
else
player->ResummonPetTemporaryUnSummonedIfAny();
// if we have charmed npc, remove stun also
if (Unit* charm = player->GetCharmed())
- if (charm->GetTypeId() == TYPEID_UNIT && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && !charm->HasUnitState(UNIT_STATE_STUNNED))
- charm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ if (charm->GetTypeId() == TYPEID_UNIT && charm->HasUnitFlag(UNIT_FLAG_STUNNED) && !charm->HasUnitState(UNIT_STATE_STUNNED))
+ charm->RemoveUnitFlag(UNIT_FLAG_STUNNED);
}
}
bool Unit::IsServiceProvider() const
{
- return HasFlag(UNIT_NPC_FLAGS,
+ return HasNpcFlag(
UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER |
UNIT_NPC_FLAG_PETITIONER | UNIT_NPC_FLAG_BATTLEMASTER | UNIT_NPC_FLAG_BANKER |
UNIT_NPC_FLAG_INNKEEPER | UNIT_NPC_FLAG_SPIRITHEALER |
@@ -8279,59 +8289,59 @@ void Unit::SetImmuneToAll(bool apply, bool keepCombat)
{
if (apply)
{
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
m_combatManager.EndAllCombat();
}
else
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
}
void Unit::SetImmuneToPC(bool apply, bool keepCombat)
{
if (apply)
{
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
{
std::list<CombatReference*> toEnd;
for (auto const& pair : m_combatManager.GetPvECombatRefs())
- if (pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
toEnd.push_back(pair.second);
for (auto const& pair : m_combatManager.GetPvPCombatRefs())
- if (pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
toEnd.push_back(pair.second);
for (CombatReference* ref : toEnd)
ref->EndCombat();
}
}
else
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
}
void Unit::SetImmuneToNPC(bool apply, bool keepCombat)
{
if (apply)
{
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
{
std::list<CombatReference*> toEnd;
for (auto const& pair : m_combatManager.GetPvECombatRefs())
- if (!pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
toEnd.push_back(pair.second);
for (auto const& pair : m_combatManager.GetPvPCombatRefs())
- if (!pair.second->GetOther(this)->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED))
+ if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
toEnd.push_back(pair.second);
for (CombatReference* ref : toEnd)
ref->EndCombat();
}
}
else
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
}
bool Unit::IsThreatened() const
@@ -8344,8 +8354,7 @@ bool Unit::isTargetableForAttack(bool checkFakeDeath) const
if (!IsAlive())
return false;
- if (HasFlag(UNIT_FIELD_FLAGS,
- UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE))
+ if (HasUnitFlag( UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE))
return false;
if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->IsGameMaster())
@@ -8740,14 +8749,14 @@ void Unit::setDeathState(DeathState s)
// do not why since in IncreaseMaxHealth currenthealth is checked
SetHealth(0);
SetPower(GetPowerType(), 0);
- SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ SetEmoteState(EMOTE_ONESHOT_NONE);
// players in instance don't have ZoneScript, but they have InstanceScript
if (ZoneScript* zoneScript = GetZoneScript() ? GetZoneScript() : GetInstanceScript())
zoneScript->OnUnitDeath(this);
}
else if (s == JUST_RESPAWNED)
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground)
+ RemoveUnitFlag(UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground)
}
//======================================================================
@@ -8793,9 +8802,9 @@ void Unit::UpdatePetCombatState()
}
if (state)
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT);
+ SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT);
else
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT);
+ RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT);
}
//======================================================================
@@ -9908,9 +9917,9 @@ void CharmInfo::SetPetNumber(uint32 petnumber, bool statwindow)
{
_petnumber = petnumber;
if (statwindow)
- _unit->SetUInt32Value(UNIT_FIELD_PETNUMBER, _petnumber);
+ _unit->SetPetNumberForClient(_petnumber);
else
- _unit->SetUInt32Value(UNIT_FIELD_PETNUMBER, 0);
+ _unit->SetPetNumberForClient(0);
}
void CharmInfo::LoadPetActionBar(const std::string& data)
@@ -10322,7 +10331,7 @@ bool Unit::IsStandState() const
return !IsSitState() && s != UNIT_STAND_STATE_SLEEP && s != UNIT_STAND_STATE_KNEEL;
}
-void Unit::SetStandState(uint8 state)
+void Unit::SetStandState(UnitStandStateType state)
{
SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, state);
@@ -10371,7 +10380,7 @@ void Unit::SetDisplayId(uint32 modelId)
SetUInt32Value(UNIT_FIELD_DISPLAYID, modelId);
// Set Gender by modelId
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
- SetGender(minfo->gender);
+ SetGender(Gender(minfo->gender));
}
void Unit::RestoreDisplayId()
@@ -10615,7 +10624,7 @@ void Unit::ApplyCastTimePercentMod(float val, bool apply)
else
ApplyPercentModFloatVar(amount, -val, apply);
- SetFloatValue(UNIT_MOD_CAST_SPEED, amount);
+ SetModCastingSpeed(amount);
}
uint32 Unit::GetCastingTimeForBonus(SpellInfo const* spellProto, DamageEffectType damagetype, uint32 CastingTime) const
@@ -10868,10 +10877,10 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id)
pet->SetCreatorGUID(GetGUID());
pet->SetFaction(GetFaction());
- pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id);
+ pet->SetCreatedBySpell(spell_id);
if (GetTypeId() == TYPEID_PLAYER)
- pet->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ pet->ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED);
if (!pet->InitStatsForLevel(level))
{
@@ -11110,7 +11119,7 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id)
{
// must be after setDeathState which resets dynamic flags
if (!creature->loot.isLooted())
- creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
else
creature->AllLootRemovedFromCorpse();
}
@@ -11320,7 +11329,7 @@ void Unit::SetStunned(bool apply)
m_rootTimes++;
SetTarget(ObjectGuid::Empty);
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ SetUnitFlag(UNIT_FLAG_STUNNED);
// MOVEMENTFLAG_ROOT cannot be used in conjunction with MOVEMENTFLAG_MASK_MOVING (tested 3.3.5a)
// this will freeze clients. That's why we remove MOVEMENTFLAG_MASK_MOVING before
@@ -11356,7 +11365,7 @@ void Unit::SetStunned(bool apply)
// don't remove UNIT_FLAG_STUNNED for pet when owner is mounted (disabled pet's interface)
Unit* owner = GetCharmerOrOwner();
if (!owner || owner->GetTypeId() != TYPEID_PLAYER || !owner->ToPlayer()->IsMounted())
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ RemoveUnitFlag(UNIT_FLAG_STUNNED);
if (!HasUnitState(UNIT_STATE_ROOT)) // prevent moving if it also has root effect
{
@@ -11615,13 +11624,13 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
switch (type)
{
case CHARM_TYPE_VEHICLE:
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED);
+ SetUnitFlag(UNIT_FLAG_POSSESSED);
playerCharmer->SetClientControl(this, true);
playerCharmer->VehicleSpellInitialize();
break;
case CHARM_TYPE_POSSESS:
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED);
- charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
+ SetUnitFlag(UNIT_FLAG_POSSESSED);
+ charmer->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL);
playerCharmer->SetClientControl(this, true);
playerCharmer->PossessSpellInitialize();
AddUnitState(UNIT_STATE_POSSESSED);
@@ -11640,7 +11649,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
GetCharmInfo()->SetPetNumber(sObjectMgr->GeneratePetNumber(), true);
// if charmed two demons the same session, the 2nd gets the 1st one's name
- SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped
+ SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped
}
}
playerCharmer->CharmSpellInitialize();
@@ -11719,14 +11728,14 @@ void Unit::RemoveCharmedBy(Unit* charmer)
case CHARM_TYPE_VEHICLE:
playerCharmer->SetClientControl(this, false);
playerCharmer->SetClientControl(charmer, true);
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED);
+ RemoveUnitFlag(UNIT_FLAG_POSSESSED);
break;
case CHARM_TYPE_POSSESS:
ClearUnitState(UNIT_STATE_POSSESSED);
playerCharmer->SetClientControl(this, false);
playerCharmer->SetClientControl(charmer, true);
- charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED);
+ charmer->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL);
+ RemoveUnitFlag(UNIT_FLAG_POSSESSED);
break;
case CHARM_TYPE_CHARM:
if (GetTypeId() == TYPEID_UNIT && charmer->GetClass() == CLASS_WARLOCK)
@@ -11813,7 +11822,7 @@ void Unit::RemoveVehicleKit()
m_updateFlag &= ~UPDATEFLAG_VEHICLE;
m_unitTypeMask &= ~UNIT_MASK_VEHICLE;
- RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE);
+ RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE);
}
bool Unit::IsOnVehicle(Unit const* vehicle) const
@@ -11954,9 +11963,9 @@ bool Unit::IsContestedGuard() const
void Unit::SetPvP(bool state)
{
if (state)
- SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_PVP);
else
- RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP);
+ RemovePvpFlag(UNIT_BYTE2_FLAG_PVP);
}
Aura* Unit::AddAura(uint32 spellId, Unit* target)
@@ -12822,15 +12831,15 @@ bool Unit::IsFalling() const
bool Unit::CanSwim() const
{
// Mirror client behavior, if this method returns false then client will not use swimming animation and for players will apply gravity as if there was no water
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CANNOT_SWIM))
+ if (HasUnitFlag(UNIT_FLAG_CANNOT_SWIM))
return false;
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) // is player
+ if (HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // is player
return true;
- if (HasFlag(UNIT_FIELD_FLAGS_2, 0x1000000))
+ if (HasUnitFlag2(UNIT_FLAG2_UNUSED_6))
return false;
- if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT))
+ if (HasUnitFlag(UNIT_FLAG_PET_IN_COMBAT))
return true;
- return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM);
+ return HasUnitFlag(UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM);
}
void Unit::NearTeleportTo(Position const& pos, bool casting /*= false*/)
@@ -13164,7 +13173,7 @@ void Unit::SendClearTarget()
SendMessageToSet(&data, false);
}
-uint32 Unit::GetResistance(SpellSchoolMask mask) const
+int32 Unit::GetResistance(SpellSchoolMask mask) const
{
int32 resist = -1;
for (int32 i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i)
@@ -13172,7 +13181,7 @@ uint32 Unit::GetResistance(SpellSchoolMask mask) const
resist = int32(GetResistance(SpellSchools(i)));
// resist value will never be negative here
- return uint32(resist);
+ return resist;
}
void CharmInfo::SetIsCommandAttack(bool val)
@@ -13390,6 +13399,11 @@ bool Unit::SetHover(bool enable, bool /*packetOnly = false*/, bool /*updateAnimT
return true;
}
+bool Unit::IsSplineEnabled() const
+{
+ return movespline->Initialized() && !movespline->Finalized();
+}
+
void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
{
if (!target)
@@ -13409,7 +13423,7 @@ void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target)
if (GetOwnerGUID() == target->GetGUID())
visibleFlag |= UF_FLAG_OWNER;
- if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO))
+ if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
visibleFlag |= UF_FLAG_SPECIAL_INFO;
@@ -13661,6 +13675,22 @@ void Unit::Whisper(std::string_view text, Language language, Player* target, boo
target->SendDirectMessage(&data);
}
+uint32 Unit::GetVirtualItemId(uint32 slot) const
+{
+ if (slot >= MAX_EQUIPMENT_ITEMS)
+ return 0;
+
+ return GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot);
+}
+
+void Unit::SetVirtualItem(uint32 slot, uint32 itemId)
+{
+ if (slot >= MAX_EQUIPMENT_ITEMS)
+ return;
+
+ SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot, itemId);
+}
+
void Unit::Talk(uint32 textId, ChatMsg msgType, float textRange, WorldObject const* target)
{
if (!sObjectMgr->GetBroadcastText(textId))
@@ -13715,7 +13745,7 @@ float Unit::GetCollisionHeight() const
if (IsMounted())
{
- if (CreatureDisplayInfoEntry const* mountDisplayInfo = sCreatureDisplayInfoStore.LookupEntry(GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID)))
+ if (CreatureDisplayInfoEntry const* mountDisplayInfo = sCreatureDisplayInfoStore.LookupEntry(GetMountDisplayId()))
{
if (CreatureModelDataEntry const* mountModelData = sCreatureModelDataStore.LookupEntry(mountDisplayInfo->ModelID))
{
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 1eeb501dc26..bf8e2b2753e 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -93,8 +93,13 @@ class UnitAura;
class Vehicle;
class VehicleJoinEvent;
-enum ZLiquidStatus : uint32;
enum MovementGeneratorType : uint8;
+enum ZLiquidStatus : uint32;
+
+namespace Movement
+{
+ class MoveSpline;
+}
typedef std::list<Unit*> UnitList;
@@ -367,10 +372,6 @@ enum UnitTypeMask
UNIT_MASK_ACCESSORY = 0x00000200
};
-namespace Movement{
- class MoveSpline;
-}
-
struct DiminishingReturn
{
DiminishingReturn() : stack(0), hitTime(0), hitCount(DIMINISHING_LEVEL_1) { }
@@ -787,6 +788,7 @@ class TC_GAME_API Unit : public WorldObject
typedef std::list<AuraEffect*> AuraEffectList;
typedef std::list<Aura*> AuraList;
typedef std::list<AuraApplication*> AuraApplicationList;
+ typedef std::array<DiminishingReturn, DIMINISHING_MAX> Diminishing;
typedef std::vector<std::pair<uint8 /*procEffectMask*/, AuraApplication*>> AuraApplicationProcContainer;
@@ -814,6 +816,9 @@ class TC_GAME_API Unit : public WorldObject
void CleanupBeforeRemoveFromMap(bool finalCleanup);
void CleanupsBeforeDelete(bool finalCleanup = true) override; // used in ~Creature/~Player (or before mass creature delete to remove cross-references to already deleted units)
+ uint32 GetDynamicFlags() const override { return GetUInt32Value(UNIT_DYNAMIC_FLAGS); }
+ void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(UNIT_DYNAMIC_FLAGS, flag); }
+
virtual bool IsAffectedByDiminishingReturns() const { return (GetCharmerOrOwnerPlayerOrPlayerItself() != nullptr); }
DiminishingLevels GetDiminishing(DiminishingGroup group) const;
void IncrDiminishing(SpellInfo const* auraSpellInfo, bool triggered);
@@ -830,7 +835,10 @@ class TC_GAME_API Unit : public WorldObject
bool haveOffhandWeapon() const;
bool CanDualWield() const { return m_canDualWield; }
virtual void SetCanDualWield(bool value) { m_canDualWield = value; }
- float GetCombatReach() const override { return m_floatValues[UNIT_FIELD_COMBATREACH]; }
+ float GetCombatReach() const override { return GetFloatValue(UNIT_FIELD_COMBATREACH); }
+ void SetCombatReach(float combatReach) { SetFloatValue(UNIT_FIELD_COMBATREACH, combatReach); }
+ float GetBoundingRadius() const { return GetFloatValue(UNIT_FIELD_BOUNDINGRADIUS); }
+ void SetBoundingRadius(float boundingRadius) { SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, boundingRadius); }
bool IsWithinCombatRange(Unit const* obj, float dist2compare) const;
bool IsWithinMeleeRange(Unit const* obj) const { return IsWithinMeleeRangeAt(GetPosition(), obj); }
bool IsWithinMeleeRangeAt(Position const& pos, Unit const* obj) const;
@@ -884,21 +892,21 @@ class TC_GAME_API Unit : public WorldObject
void SetRace(uint8 race) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_RACE, race); }
uint32 GetRaceMask() const { return 1 << (GetRace() - 1); }
uint8 GetClass() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS); }
- void SetClass(uint8 unitClass) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS, unitClass); }
+ void SetClass(uint8 classId) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS, classId); }
uint32 GetClassMask() const { return 1 << (GetClass() - 1); }
- uint8 GetGender() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER); }
- void SetGender(uint8 gender) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, gender); }
- virtual uint8 GetNativeGender() const { return GetGender(); }
- virtual void SetNativeGender(uint8 gender) { SetGender(gender); }
+ Gender GetGender() const { return Gender(GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER)); }
+ void SetGender(Gender gender) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, gender); }
+ virtual Gender GetNativeGender() const { return GetGender(); }
+ virtual void SetNativeGender(Gender gender) { SetGender(gender); }
float GetStat(Stats stat) const { return float(GetUInt32Value(UNIT_FIELD_STAT0+stat)); }
void SetStat(Stats stat, int32 val) { SetStatInt32Value(UNIT_FIELD_STAT0+stat, val); }
uint32 GetArmor() const { return GetResistance(SPELL_SCHOOL_NORMAL); }
void SetArmor(int32 val) { SetResistance(SPELL_SCHOOL_NORMAL, val); }
- uint32 GetResistance(SpellSchools school) const { return GetUInt32Value(UNIT_FIELD_RESISTANCES+school); }
- uint32 GetResistance(SpellSchoolMask mask) const;
- void SetResistance(SpellSchools school, int32 val) { SetStatInt32Value(UNIT_FIELD_RESISTANCES+school, val); }
+ int32 GetResistance(SpellSchools school) const { return GetInt32Value(UNIT_FIELD_RESISTANCES + school); }
+ int32 GetResistance(SpellSchoolMask mask) const;
+ void SetResistance(SpellSchools school, int32 val) { SetStatInt32Value(UNIT_FIELD_RESISTANCES + school, val); }
static float CalculateAverageResistReduction(WorldObject const* caster, SpellSchoolMask schoolMask, Unit const* victim, SpellInfo const* spellInfo = nullptr);
uint32 GetHealth() const { return GetUInt32Value(UNIT_FIELD_HEALTH); }
@@ -924,6 +932,8 @@ class TC_GAME_API Unit : public WorldObject
void UpdateDisplayPower();
uint32 GetPower(Powers power) const { return GetUInt32Value(UNIT_FIELD_POWER1 +power); }
uint32 GetMaxPower(Powers power) const { return GetUInt32Value(UNIT_FIELD_MAXPOWER1+power); }
+ float GetPowerPct(Powers power) const { return GetMaxPower(power) ? 100.f * GetPower(power) / GetMaxPower(power) : 0.0f; }
+ int32 CountPctFromMaxPower(Powers power, int32 pct) const { return CalculatePct(GetMaxPower(power), pct); }
void SetPower(Powers power, uint32 val, bool withPowerUpdate = true);
void SetMaxPower(Powers power, uint32 val);
inline void SetFullPower(Powers power) { SetPower(power, GetMaxPower(power)); }
@@ -935,6 +945,25 @@ class TC_GAME_API Unit : public WorldObject
void ApplyAttackTimePercentMod(WeaponAttackType att, float val, bool apply);
void ApplyCastTimePercentMod(float val, bool apply);
+ void SetModCastingSpeed(float castingSpeed) { SetFloatValue(UNIT_MOD_CAST_SPEED, castingSpeed); }
+
+ UnitFlags GetUnitFlags() const { return UnitFlags(GetUInt32Value(UNIT_FIELD_FLAGS)); }
+ bool HasUnitFlag(UnitFlags flags) const { return HasFlag(UNIT_FIELD_FLAGS, flags); }
+ void SetUnitFlag(UnitFlags flags) { SetFlag(UNIT_FIELD_FLAGS, flags); }
+ void RemoveUnitFlag(UnitFlags flags) { RemoveFlag(UNIT_FIELD_FLAGS, flags); }
+ void ReplaceAllUnitFlags(UnitFlags flags) { SetUInt32Value(UNIT_FIELD_FLAGS, flags); }
+
+ UnitFlags2 GetUnitFlags2() const { return UnitFlags2(GetUInt32Value(UNIT_FIELD_FLAGS_2)); }
+ bool HasUnitFlag2(UnitFlags2 flags) const { return HasFlag(UNIT_FIELD_FLAGS_2, flags); }
+ void SetUnitFlag2(UnitFlags2 flags) { SetFlag(UNIT_FIELD_FLAGS_2, flags); }
+ void RemoveUnitFlag2(UnitFlags2 flags) { RemoveFlag(UNIT_FIELD_FLAGS_2, flags); }
+ void ReplaceAllUnitFlags2(UnitFlags2 flags) { SetUInt32Value(UNIT_FIELD_FLAGS_2, flags); }
+
+ void SetCreatedBySpell(int32 spellId) { SetUInt32Value(UNIT_CREATED_BY_SPELL, spellId); }
+
+ Emote GetEmoteState() const { return Emote(GetUInt32Value(UNIT_NPC_EMOTESTATE)); }
+ void SetEmoteState(Emote emote) { SetUInt32Value(UNIT_NPC_EMOTESTATE, emote); }
+
SheathState GetSheath() const { return SheathState(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE)); }
virtual void SetSheath(SheathState sheathed) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_SHEATH_STATE, sheathed); }
@@ -946,27 +975,42 @@ class TC_GAME_API Unit : public WorldObject
bool IsInRaidWith(Unit const* unit) const;
void GetPartyMembers(std::list<Unit*> &units);
bool IsContestedGuard() const;
- bool IsInSanctuary() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_SANCTUARY); }
- bool IsPvP() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP); }
- bool IsFFAPvP() const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP); }
+
+ UnitPVPStateFlags GetPvpFlags() const { return UnitPVPStateFlags(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); }
+ bool HasPvpFlag(UnitPVPStateFlags flags) const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); }
+ void SetPvpFlag(UnitPVPStateFlags flags) { SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); }
+ void RemovePvpFlag(UnitPVPStateFlags flags) { RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); }
+ void ReplaceAllPvpFlags(UnitPVPStateFlags flags) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, flags); }
+
+ bool IsInSanctuary() const { return HasPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY); }
+ bool IsPvP() const { return HasPvpFlag(UNIT_BYTE2_FLAG_PVP); }
+ bool IsFFAPvP() const { return HasPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP); }
virtual void SetPvP(bool state);
+ UnitPetFlag GetPetFlags() const { return UnitPetFlag(GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS)); }
+ bool HasPetFlag(UnitPetFlag flags) const { return HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); }
+ void SetPetFlag(UnitPetFlag flags) { SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); }
+ void RemovePetFlag(UnitPetFlag flags) { RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); }
+ void ReplaceAllPetFlags(UnitPetFlag flags) { SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, flags); }
+
uint32 GetCreatureType() const;
uint32 GetCreatureTypeMask() const;
- uint8 GetStandState() const { return GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE); }
+ UnitStandStateType GetStandState() const { return UnitStandStateType(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE)); }
bool IsSitState() const;
bool IsStandState() const;
- void SetStandState(uint8 state);
+ void SetStandState(UnitStandStateType state);
- void SetAnimTier(AnimTier tier);
- AnimTier GetAnimTier() const { return static_cast<AnimTier>(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER)); }
+ void SetVisFlag(UnitVisFlags flags) { SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); }
+ void RemoveVisFlag(UnitVisFlags flags) { RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); }
+ void ReplaceAllVisFlags(UnitVisFlags flags) { SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); }
- void SetStandFlags(uint8 flags) { SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); }
- void RemoveStandFlags(uint8 flags) { RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, flags); }
+ AnimTier GetAnimTier() const { return AnimTier(GetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER)); }
+ void SetAnimTier(AnimTier animTier);
- bool IsMounted() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT); }
- uint32 GetMountID() const { return GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID); }
+ bool IsMounted() const { return HasUnitFlag(UNIT_FLAG_MOUNT); }
+ uint32 GetMountDisplayId() const { return GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID); }
+ void SetMountDisplayId(uint32 mountDisplayId) { SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, mountDisplayId); }
void Mount(uint32 mount, uint32 vehicleId = 0, uint32 creatureEntry = 0);
void Dismount();
@@ -1001,7 +1045,7 @@ class TC_GAME_API Unit : public WorldObject
ObjectGuid GetLastDamagedTargetGuid() const { return _lastDamagedTargetGuid; }
void CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 damage, SpellInfo const* spellInfo, WeaponAttackType attackType = BASE_ATTACK, bool crit = false, Spell* spell = nullptr);
- void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss);
+ void DealSpellDamage(SpellNonMeleeDamage const* damageInfo, bool durabilityLoss);
// player or player's pet resilience (-1%)
float GetMeleeCritChanceReduction() const { return GetCombatRatingReduction(CR_CRIT_TAKEN_MELEE); }
@@ -1040,27 +1084,34 @@ class TC_GAME_API Unit : public WorldObject
uint32 GetShieldBlockValue(uint32 soft_cap, uint32 hard_cap) const;
uint32 GetDefenseSkillValue(Unit const* target = nullptr) const;
uint32 GetWeaponSkillValue(WeaponAttackType attType, Unit const* target = nullptr) const;
+
float GetWeaponProcChance() const;
float GetPPMProcChance(uint32 WeaponSpeed, float PPM, SpellInfo const* spellProto) const;
MeleeHitOutcome RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackType attType) const;
- bool IsVendor() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR); }
- bool IsTrainer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TRAINER); }
- bool IsQuestGiver() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); }
- bool IsGossip() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); }
- bool IsTaxi() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER); }
- bool IsGuildMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PETITIONER); }
- bool IsBattleMaster() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BATTLEMASTER); }
- bool IsBanker() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER); }
- bool IsInnkeeper() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_INNKEEPER); }
- bool IsSpiritHealer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER); }
- bool IsSpiritGuide() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITGUIDE); }
- bool IsTabardDesigner()const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TABARDDESIGNER); }
- bool IsAuctioner() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_AUCTIONEER); }
- bool IsArmorer() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_REPAIR); }
+ NPCFlags GetNpcFlags() const { return NPCFlags(GetUInt32Value(UNIT_NPC_FLAGS)); }
+ bool HasNpcFlag(NPCFlags flags) const { return HasFlag(UNIT_NPC_FLAGS, flags) != 0; }
+ void SetNpcFlag(NPCFlags flags) { SetFlag(UNIT_NPC_FLAGS, flags); }
+ void RemoveNpcFlag(NPCFlags flags) { RemoveFlag(UNIT_NPC_FLAGS, flags); }
+ void ReplaceAllNpcFlags(NPCFlags flags) { SetUInt32Value(UNIT_NPC_FLAGS, flags); }
+
+ bool IsVendor() const { return HasNpcFlag(UNIT_NPC_FLAG_VENDOR); }
+ bool IsTrainer() const { return HasNpcFlag(UNIT_NPC_FLAG_TRAINER); }
+ bool IsQuestGiver() const { return HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); }
+ bool IsGossip() const { return HasNpcFlag(UNIT_NPC_FLAG_GOSSIP); }
+ bool IsTaxi() const { return HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER); }
+ bool IsGuildMaster() const { return HasNpcFlag(UNIT_NPC_FLAG_PETITIONER); }
+ bool IsBattleMaster() const { return HasNpcFlag(UNIT_NPC_FLAG_BATTLEMASTER); }
+ bool IsBanker() const { return HasNpcFlag(UNIT_NPC_FLAG_BANKER); }
+ bool IsInnkeeper() const { return HasNpcFlag(UNIT_NPC_FLAG_INNKEEPER); }
+ bool IsSpiritHealer() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER); }
+ bool IsSpiritGuide() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITGUIDE); }
+ bool IsTabardDesigner() const { return HasNpcFlag(UNIT_NPC_FLAG_TABARDDESIGNER); }
+ bool IsAuctioner() const { return HasNpcFlag(UNIT_NPC_FLAG_AUCTIONEER); }
+ bool IsArmorer() const { return HasNpcFlag(UNIT_NPC_FLAG_REPAIR); }
bool IsServiceProvider() const;
- bool IsSpiritService() const { return HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); }
+ bool IsSpiritService() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); }
bool IsCritter() const { return GetCreatureType() == CREATURE_TYPE_CRITTER; }
bool IsInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); }
@@ -1081,14 +1132,14 @@ class TC_GAME_API Unit : public WorldObject
bool IsImmuneToAll() const { return IsImmuneToPC() && IsImmuneToNPC(); }
void SetImmuneToAll(bool apply, bool keepCombat);
virtual void SetImmuneToAll(bool apply) { SetImmuneToAll(apply, false); }
- bool IsImmuneToPC() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); }
+ bool IsImmuneToPC() const { return HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); }
void SetImmuneToPC(bool apply, bool keepCombat);
virtual void SetImmuneToPC(bool apply) { SetImmuneToPC(apply, false); }
- bool IsImmuneToNPC() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC); }
+ bool IsImmuneToNPC() const { return HasUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); }
void SetImmuneToNPC(bool apply, bool keepCombat);
virtual void SetImmuneToNPC(bool apply) { SetImmuneToNPC(apply, false); }
- bool IsInCombat() const { return HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); }
+ bool IsInCombat() const { return HasUnitFlag(UNIT_FLAG_IN_COMBAT); }
bool IsInCombatWith(Unit const* who) const { return who && m_combatManager.IsInCombatWith(who); }
void SetInCombatWith(Unit* enemy) { if (enemy) m_combatManager.SetInCombatWith(enemy); }
void ClearInCombat() { m_combatManager.EndAllCombat(); }
@@ -1104,7 +1155,7 @@ class TC_GAME_API Unit : public WorldObject
void SendClearTarget();
- bool HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, uint32 familyFlags) const;
+ bool HasAuraTypeWithFamilyFlags(AuraType auraType, uint32 familyName, flag96 familyFlags) const;
bool virtual HasSpell(uint32 /*spellID*/) const { return false; }
bool HasBreakableByDamageAuraType(AuraType type, uint32 excludeAura = 0) const;
bool HasBreakableByDamageCrowdControlAura(Unit* excludeCasterChannel = nullptr) const;
@@ -1138,7 +1189,7 @@ class TC_GAME_API Unit : public WorldObject
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 SendSpellNonMeleeDamageLog(SpellNonMeleeDamage* log);
+ void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const* log);
void SendSpellNonMeleeDamageLog(Unit* target, uint32 spellID, uint32 damage, SpellSchoolMask damageSchoolMask, uint32 absorbedDamage, uint32 resist, bool isPeriodic, uint32 blocked, bool criticalHit = false, bool split = false);
void SendPeriodicAuraLog(SpellPeriodicAuraLogInfo* pInfo);
void SendSpellDamageResist(Unit* target, uint32 spellId);
@@ -1158,10 +1209,10 @@ class TC_GAME_API Unit : public WorldObject
void JumpTo(WorldObject* obj, float speedZ, bool withOrientation = false);
void MonsterMoveWithSpeed(float x, float y, float z, float speed, bool generatePath = false, bool forceDestination = false);
- //void SetFacing(float ori, WorldObject* obj = nullptr);
- //void SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 type, uint32 MovementFlags, uint32 Time, Player* player = nullptr);
void SendMovementFlagUpdate(bool self = false);
+ void SetHoverHeight(float hoverHeight) { SetFloatValue(UNIT_FIELD_HOVERHEIGHT, hoverHeight); }
+
bool IsGravityDisabled() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); }
bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING); }
bool IsHovering() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_HOVER); }
@@ -1192,10 +1243,10 @@ class TC_GAME_API Unit : public WorldObject
void SetCreatorGUID(ObjectGuid creator) { SetGuidValue(UNIT_FIELD_CREATEDBY, creator); }
ObjectGuid GetMinionGUID() const { return GetGuidValue(UNIT_FIELD_SUMMON); }
void SetMinionGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_SUMMON, guid); }
- void SetPetGUID(ObjectGuid guid) { m_SummonSlot[SUMMON_SLOT_PET] = guid; }
ObjectGuid GetPetGUID() const { return m_SummonSlot[SUMMON_SLOT_PET]; }
- void SetCritterGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CRITTER, guid); }
+ void SetPetGUID(ObjectGuid guid) { m_SummonSlot[SUMMON_SLOT_PET] = guid; }
ObjectGuid GetCritterGUID() const { return GetGuidValue(UNIT_FIELD_CRITTER); }
+ void SetCritterGUID(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CRITTER, guid); }
ObjectGuid GetCharmerGUID() const { return GetGuidValue(UNIT_FIELD_CHARMEDBY); }
Unit* GetCharmer() const { return m_charmer; }
@@ -1235,6 +1286,8 @@ class TC_GAME_API Unit : public WorldObject
CharmInfo* GetCharmInfo() { return m_charmInfo; }
CharmInfo* InitCharmInfo();
void DeleteCharmInfo();
+ void SetPetNumberForClient(uint32 petNumber) { SetUInt32Value(UNIT_FIELD_PETNUMBER, petNumber); }
+ void SetPetNameTimestamp(uint32 timestamp) { SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, timestamp); }
// base client control of this unit (possess effects, vehicles and similar). Not affected by temporary CC.
bool IsCharmerOrSelfPlayer() const { return GetCharmerOrSelf()->IsPlayer(); }
@@ -1328,6 +1381,7 @@ class TC_GAME_API Unit : public WorldObject
void _ApplyAllAuraStatMods();
AuraEffectList const& GetAuraEffectsByType(AuraType type) const { return m_modAuras[type]; }
+ AuraEffectList& GetAuraEffectsByType(AuraType type) { return m_modAuras[type]; }
AuraList & GetSingleCastAuras() { return m_scAuras; }
AuraList const& GetSingleCastAuras() const { return m_scAuras; }
@@ -1400,6 +1454,8 @@ class TC_GAME_API Unit : public WorldObject
float GetNegStat(Stats stat) const { return GetFloatValue(UNIT_FIELD_NEGSTAT0+stat); }
float GetCreateStat(Stats stat) const { return m_createStats[stat]; }
+ uint32 GetChannelSpellId() const { return GetUInt32Value(UNIT_CHANNEL_SPELL); }
+ void SetChannelSpellId(uint32 channelSpellId) { SetUInt32Value(UNIT_CHANNEL_SPELL, channelSpellId); }
ObjectGuid GetChannelObjectGuid() const { return GetGuidValue(UNIT_FIELD_CHANNEL_OBJECT); }
void SetChannelObjectGuid(ObjectGuid guid) { SetGuidValue(UNIT_FIELD_CHANNEL_OBJECT, guid); }
@@ -1424,8 +1480,8 @@ class TC_GAME_API Unit : public WorldObject
virtual bool HasSpellFocus(Spell const* /*focusSpell*/ = nullptr) const { return false; }
virtual bool IsMovementPreventedByCasting() const;
- SpellHistory* GetSpellHistory() { return m_spellHistory; }
- SpellHistory const* GetSpellHistory() const { return m_spellHistory; }
+ SpellHistory* GetSpellHistory() { return _spellHistory; }
+ SpellHistory const* GetSpellHistory() const { return _spellHistory; }
ObjectGuid m_SummonSlot[MAX_SUMMON_SLOT];
ObjectGuid m_ObjectSlot[MAX_GAMEOBJECT_SLOT];
@@ -1443,6 +1499,7 @@ class TC_GAME_API Unit : public WorldObject
int32 m_baseSpellCritChance;
float m_modAttackSpeedPct[MAX_ATTACK];
+ uint32 m_attackTimer[MAX_ATTACK];
// stat system
void HandleStatFlatModifier(UnitMods unitMod, UnitModifierFlatType modifierType, float amount, bool apply);
@@ -1480,6 +1537,14 @@ class TC_GAME_API Unit : public WorldObject
virtual void UpdateMaxHealth() = 0;
virtual void UpdateMaxPower(Powers power) = 0;
virtual void UpdateAttackPowerAndDamage(bool ranged = false) = 0;
+ void SetAttackPower(int32 attackPower) { SetInt32Value(UNIT_FIELD_ATTACK_POWER, attackPower); }
+ void SetAttackPowerModPos(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_ATTACK_POWER_MODS, 0, attackPowerMod); }
+ void SetAttackPowerModNeg(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_ATTACK_POWER_MODS, 1, attackPowerMod); }
+ void SetAttackPowerMultiplier(float attackPowerMult) { SetFloatValue(UNIT_FIELD_ATTACK_POWER_MULTIPLIER, attackPowerMult); }
+ void SetRangedAttackPower(int32 attackPower) { SetInt32Value(UNIT_FIELD_RANGED_ATTACK_POWER, attackPower); }
+ void SetRangedAttackPowerModPos(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 0, attackPowerMod); }
+ void SetRangedAttackPowerModNeg(int32 attackPowerMod) { SetInt16Value(UNIT_FIELD_RANGED_ATTACK_POWER_MODS, 1, attackPowerMod); }
+ void SetRangedAttackPowerMultiplier(float attackPowerMult) { SetFloatValue(UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER, attackPowerMult); }
virtual void UpdateDamagePhysical(WeaponAttackType attType);
float GetTotalAttackPowerValue(WeaponAttackType attType) const;
float GetWeaponDamageRange(WeaponAttackType attType, WeaponDamageRange type, uint8 damageIndex = 0) const;
@@ -1502,13 +1567,13 @@ class TC_GAME_API Unit : public WorldObject
SpellImmuneContainer m_spellImmune[MAX_SPELL_IMMUNITY];
uint32 m_lastSanctuaryTime;
- VisibleAuraMap const* GetVisibleAuras() { return &m_visibleAuras; }
- AuraApplication * GetVisibleAura(uint8 slot) const;
- void SetVisibleAura(uint8 slot, AuraApplication * aur);
+ VisibleAuraMap const& GetVisibleAuras() const { return m_visibleAuras; }
+ AuraApplication* GetVisibleAura(uint8 slot) const;
+ void SetVisibleAura(uint8 slot, AuraApplication* aurApp);
void RemoveVisibleAura(uint8 slot);
- uint32 GetInterruptMask() const { return m_interruptMask; }
- void AddInterruptMask(uint32 mask) { m_interruptMask |= mask; }
+ bool HasInterruptFlag(uint32 flags) const { return (m_interruptMask & flags) != 0; }
+ void AddInterruptMask(uint32 flags) { m_interruptMask |= flags; }
void UpdateInterruptMask();
virtual float GetNativeObjectScale() const { return 1.0f; }
@@ -1517,25 +1582,27 @@ class TC_GAME_API Unit : public WorldObject
virtual void SetDisplayId(uint32 modelId);
uint32 GetNativeDisplayId() const { return GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID); }
void RestoreDisplayId();
- void SetNativeDisplayId(uint32 modelId) { SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, modelId); }
+ void SetNativeDisplayId(uint32 displayId) { SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID, displayId); }
void SetTransformSpell(uint32 spellid) { m_transformSpell = spellid;}
uint32 GetTransformSpell() const { return m_transformSpell;}
// DynamicObject management
void _RegisterDynObject(DynamicObject* dynObj);
void _UnregisterDynObject(DynamicObject* dynObj);
- DynamicObject* GetDynObject(uint32 spellId);
+ DynamicObject* GetDynObject(uint32 spellId) const;
+ std::vector<DynamicObject*> GetDynObjects(uint32 spellId) const;
void RemoveDynObject(uint32 spellId);
void RemoveAllDynObjects();
GameObject* GetGameObject(uint32 spellId) const;
+ std::vector<GameObject*> GetGameObjects(uint32 spellId) const;
void AddGameObject(GameObject* gameObj);
void RemoveGameObject(GameObject* gameObj, bool del);
void RemoveGameObject(uint32 spellid, bool del);
void RemoveAllGameObjects();
void ModifyAuraState(AuraStateType flag, bool apply);
- uint32 BuildAuraStateUpdateForTarget(Unit* target) const;
+ uint32 BuildAuraStateUpdateForTarget(Unit const* target) const;
bool HasAuraState(AuraStateType flag, SpellInfo const* spellProto = nullptr, Unit const* Caster = nullptr) const;
void UnsummonAllTotems();
bool IsMagnet() const;
@@ -1606,17 +1673,19 @@ class TC_GAME_API Unit : public WorldObject
void PauseMovement(uint32 timer = 0, uint8 slot = 0, bool forced = true); // timer in ms
void ResumeMovement(uint32 timer = 0, uint8 slot = 0); // timer in ms
- void AddUnitMovementFlag(uint32 f) { m_movementInfo.flags |= f; }
- void RemoveUnitMovementFlag(uint32 f) { m_movementInfo.flags &= ~f; }
- bool HasUnitMovementFlag(uint32 f) const { return (m_movementInfo.flags & f) == f; }
- uint32 GetUnitMovementFlags() const { return m_movementInfo.flags; }
- void SetUnitMovementFlags(uint32 f) { m_movementInfo.flags = f; }
+ void AddUnitMovementFlag(uint32 f) { m_movementInfo.AddMovementFlag(f); }
+ void RemoveUnitMovementFlag(uint32 f) { m_movementInfo.RemoveMovementFlag(f); }
+ bool HasUnitMovementFlag(uint32 f) const { return m_movementInfo.HasMovementFlag(f); }
+ uint32 GetUnitMovementFlags() const { return m_movementInfo.GetMovementFlags(); }
+ void SetUnitMovementFlags(uint32 f) { m_movementInfo.SetMovementFlags(f); }
+
+ void AddExtraUnitMovementFlag(uint32 f) { m_movementInfo.AddExtraMovementFlag(f); }
+ void RemoveExtraUnitMovementFlag(uint32 f) { m_movementInfo.RemoveExtraMovementFlag(f); }
+ bool HasExtraUnitMovementFlag(uint32 f) const { return m_movementInfo.HasExtraMovementFlag(f); }
+ uint32 GetExtraUnitMovementFlags() const { return m_movementInfo.GetExtraMovementFlags(); }
+ void SetExtraUnitMovementFlags(uint32 f) { m_movementInfo.SetExtraMovementFlags(f); }
- void AddExtraUnitMovementFlag(uint16 f) { m_movementInfo.flags2 |= f; }
- void RemoveExtraUnitMovementFlag(uint16 f) { m_movementInfo.flags2 &= ~f; }
- uint16 HasExtraUnitMovementFlag(uint16 f) const { return m_movementInfo.flags2 & f; }
- uint16 GetExtraUnitMovementFlags() const { return m_movementInfo.flags2; }
- void SetExtraUnitMovementFlags(uint16 f) { m_movementInfo.flags2 = f; }
+ bool IsSplineEnabled() const;
void SetControlled(bool apply, UnitState state);
void ApplyControlStatesIfNeeded();
@@ -1637,8 +1706,8 @@ class TC_GAME_API Unit : public WorldObject
void ClearComboPointHolders();
///----------Pet responses methods-----------------
- void SendPetActionFeedback (uint8 msg);
- void SendPetTalk (uint32 pettalk);
+ void SendPetActionFeedback(uint8 msg);
+ void SendPetTalk(uint32 pettalk);
void SendPetAIReaction(ObjectGuid guid);
///----------End of Pet responses methods----------
@@ -1748,6 +1817,8 @@ class TC_GAME_API Unit : public WorldObject
virtual void Whisper(uint32 textId, Player* target, bool isBossWhisper = false);
float GetCollisionHeight() const override;
+ uint32 GetVirtualItemId(uint32 slot) const;
+ void SetVirtualItem(uint32 slot, uint32 itemId);
// returns if the unit can't enter combat
bool IsCombatDisallowed() const { return _isCombatDisallowed; }
@@ -1755,6 +1826,7 @@ class TC_GAME_API Unit : public WorldObject
void SetIsCombatDisallowed(bool apply) { _isCombatDisallowed = apply; }
std::string GetDebugInfo() const override;
+
protected:
explicit Unit (bool isWorldObject);
@@ -1769,8 +1841,6 @@ class TC_GAME_API Unit : public WorldObject
bool m_AutoRepeatFirstCast;
- uint32 m_attackTimer[MAX_ATTACK];
-
float m_createStats[MAX_STATS];
AttackerSet m_attackers;
@@ -1806,6 +1876,7 @@ class TC_GAME_API Unit : public WorldObject
float m_auraPctModifiersGroup[UNIT_MOD_END][MODIFIER_TYPE_PCT_END];
float m_weaponDamage[MAX_ATTACK][2][2];
bool m_canModifyStats;
+
VisibleAuraMap m_visibleAuras;
float m_speed_rate[MAX_MOVE_TYPE];
@@ -1856,7 +1927,6 @@ class TC_GAME_API Unit : public WorldObject
void ProcSkillsAndReactives(bool isVictim, Unit* procTarget, uint32 typeMask, uint32 hitMask, WeaponAttackType attType);
protected:
-
void SetFeared(bool apply);
void SetConfused(bool apply);
void SetStunned(bool apply);
@@ -1870,7 +1940,7 @@ class TC_GAME_API Unit : public WorldObject
uint32 m_lastManaUse; // msecs
TimeTracker m_splineSyncTimer;
- DiminishingReturn m_Diminishing[DIMINISHING_MAX];
+ Diminishing m_Diminishing;
// Threat+combat management
friend class CombatManager;
@@ -1902,7 +1972,8 @@ class TC_GAME_API Unit : public WorldObject
uint32 _oldFactionId; ///< faction before charm
bool _isWalkingBeforeCharm; ///< Are we walking before we were charmed?
- SpellHistory* m_spellHistory;
+ SpellHistory* _spellHistory;
+
PositionUpdateInfo _positionUpdateInfo;
bool _isCombatDisallowed;
@@ -1928,15 +1999,15 @@ namespace Trinity
{
Unit const* a = objA->ToUnit();
Unit const* b = objB->ToUnit();
- float rA = (a && a->GetMaxPower(_power)) ? float(a->GetPower(_power)) / float(a->GetMaxPower(_power)) : 0.0f;
- float rB = (b && b->GetMaxPower(_power)) ? float(b->GetPower(_power)) / float(b->GetMaxPower(_power)) : 0.0f;
+ float rA = a ? a->GetPowerPct(_power) : 0.0f;
+ float rB = b ? b->GetPowerPct(_power) : 0.0f;
return _ascending ? rA < rB : rA > rB;
}
bool operator()(Unit const* a, Unit const* b) const
{
- float rA = a->GetMaxPower(_power) ? float(a->GetPower(_power)) / float(a->GetMaxPower(_power)) : 0.0f;
- float rB = b->GetMaxPower(_power) ? float(b->GetPower(_power)) / float(b->GetMaxPower(_power)) : 0.0f;
+ float rA = a->GetPowerPct(_power);
+ float rB = b->GetPowerPct(_power);
return _ascending ? rA < rB : rA > rB;
}
diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h
index 269798d99bb..b95c0d4c1ac 100644
--- a/src/server/game/Entities/Unit/UnitDefines.h
+++ b/src/server/game/Entities/Unit/UnitDefines.h
@@ -19,6 +19,7 @@
#define UnitDefines_h__
#include "Define.h"
+#include "EnumFlag.h"
#include <string>
#define BASE_MINDAMAGE 1.0f
@@ -43,14 +44,14 @@ enum UnitStandStateType : uint8
};
// byte flag value (UNIT_FIELD_BYTES_1, 2)
-enum UnitStandFlags : uint8
+enum UnitVisFlags : uint8
{
- UNIT_STAND_FLAGS_UNK1 = 0x01,
- UNIT_STAND_FLAGS_CREEP = 0x02,
- UNIT_STAND_FLAGS_UNTRACKABLE = 0x04,
- UNIT_STAND_FLAGS_UNK4 = 0x08,
- UNIT_STAND_FLAGS_UNK5 = 0x10,
- UNIT_STAND_FLAGS_ALL = 0xFF
+ UNIT_VIS_FLAGS_UNK1 = 0x01,
+ UNIT_VIS_FLAGS_CREEP = 0x02,
+ UNIT_VIS_FLAGS_UNTRACKABLE = 0x04,
+ UNIT_VIS_FLAGS_UNK4 = 0x08,
+ UNIT_VIS_FLAGS_UNK5 = 0x10,
+ UNIT_VIS_FLAGS_ALL = 0xFF
};
enum UnitBytes0Offsets : uint8
@@ -100,6 +101,7 @@ enum SheathState : uint8
// byte (1 from 0..3) of UNIT_FIELD_BYTES_2
enum UnitPVPStateFlags : uint8
{
+ UNIT_BYTE2_FLAG_NONE = 0x00,
UNIT_BYTE2_FLAG_PVP = 0x01,
UNIT_BYTE2_FLAG_UNK1 = 0x02,
UNIT_BYTE2_FLAG_FFA_PVP = 0x04,
@@ -110,13 +112,18 @@ enum UnitPVPStateFlags : uint8
UNIT_BYTE2_FLAG_UNK7 = 0x80
};
+DEFINE_ENUM_FLAG(UnitPVPStateFlags);
+
// byte (2 from 0..3) of UNIT_FIELD_BYTES_2
-enum UnitRename : uint8
+enum UnitPetFlag : uint8
{
- UNIT_CAN_BE_RENAMED = 0x01,
- UNIT_CAN_BE_ABANDONED = 0x02
+ UNIT_PET_FLAG_NONE = 0x0,
+ UNIT_PET_FLAG_CAN_BE_RENAMED = 0x01,
+ UNIT_PET_FLAG_CAN_BE_ABANDONED = 0x02
};
+DEFINE_ENUM_FLAG(UnitPetFlag);
+
// Value masks for UNIT_FIELD_FLAGS
// EnumUtils: DESCRIBE THIS
enum UnitFlags : uint32
@@ -165,6 +172,8 @@ enum UnitFlags : uint32
UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED)
};
+DEFINE_ENUM_FLAG(UnitFlags);
+
// Value masks for UNIT_FIELD_FLAGS_2
enum UnitFlags2 : uint32
{
@@ -214,6 +223,8 @@ enum UnitFlags2 : uint32
UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED)
};
+DEFINE_ENUM_FLAG(UnitFlags2);
+
/// Non Player Character flags
// EnumUtils: DESCRIBE THIS
enum NPCFlags : uint32
@@ -248,6 +259,8 @@ enum NPCFlags : uint32
UNIT_NPC_FLAG_MAILBOX = 0x04000000 // TITLE is mailbox
};
+DEFINE_ENUM_FLAG(NPCFlags);
+
enum MovementFlags : uint32
{
MOVEMENTFLAG_NONE = 0x00000000,
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index 9f8f757e7f2..b2a81e4a12c 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -50,9 +50,9 @@ UsableSeatNum(0), _me(unit), _vehicleInfo(vehInfo), _creatureEntry(creatureEntry
// Set or remove correct flags based on available seats. Will overwrite db data (if wrong).
if (UsableSeatNum)
- _me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
+ _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
else
- _me->RemoveFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
+ _me->RemoveNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
InitMovementInfoForBase();
}
@@ -506,11 +506,11 @@ Vehicle* Vehicle::RemovePassenger(Unit* unit)
unit->GetName().c_str(), _me->GetEntry(), _vehicleInfo->ID, _me->GetGUID().ToString().c_str(), (int32)seat->first);
if (seat->second.SeatInfo->CanEnterOrExit() && ++UsableSeatNum)
- _me->SetFlag(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
+ _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
// Remove UNIT_FLAG_UNINTERACTIBLE if passenger did not have it before entering vehicle
if (seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE && !seat->second.Passenger.IsUninteractible)
- unit->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ unit->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
seat->second.Passenger.Reset();
@@ -819,7 +819,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
Passenger->SetVehicle(Target);
Seat->second.Passenger.Guid = Passenger->GetGUID();
- Seat->second.Passenger.IsUninteractible = Passenger->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Seat->second.Passenger.IsUninteractible = Passenger->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Seat->second.SeatInfo->CanEnterOrExit())
{
ASSERT(Target->UsableSeatNum);
@@ -827,9 +827,9 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
if (!Target->UsableSeatNum)
{
if (Target->GetBase()->GetTypeId() == TYPEID_PLAYER)
- Target->GetBase()->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_PLAYER_VEHICLE);
+ Target->GetBase()->RemoveNpcFlag(UNIT_NPC_FLAG_PLAYER_VEHICLE);
else
- Target->GetBase()->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+ Target->GetBase()->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
}
}
@@ -854,7 +854,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
}
if (veSeat->HasFlag(VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE))
- Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Passenger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
float o = veSeatAddon ? veSeatAddon->SeatOrientationOffset : 0.f;
float x = veSeat->AttachmentOffset.X;
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index 88a47de0c40..db842a39461 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -1221,7 +1221,7 @@ void GameEventMgr::UpdateEventNPCFlags(uint16 event_id)
if (CreatureTemplate const* creatureTemplate = creature->GetCreatureTemplate())
npcflag |= creatureTemplate->npcflag;
- creature->SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
+ creature->ReplaceAllNpcFlags(NPCFlags(npcflag));
// reset gossip options, since the flag change might have added / removed some
//cr->ResetGossipOptions();
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 5fa661038fc..f6e51d9aeb7 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -883,7 +883,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder)
// Set FFA PvP for non GM in non-rest mode
if (sWorld->IsFFAPvPRealm() && !pCurrChar->IsGameMaster() && !pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING))
- pCurrChar->SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ pCurrChar->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
if (pCurrChar->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_CONTESTED_PVP))
pCurrChar->SetContestedPvP();
@@ -1333,7 +1333,7 @@ void WorldSession::HandleAlterAppearance(WorldPacket& recvData)
_player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, 1);
- _player->SetStandState(0); // stand up
+ _player->SetStandState(UNIT_STAND_STATE_STAND);
}
void WorldSession::HandleRemoveGlyph(WorldPacket& recvData)
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index b711826f51e..05b25c334b2 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -258,7 +258,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
player->SetLootGUID(ObjectGuid::Empty);
player->SendLootRelease(lguid);
- player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_LOOTING);
+ player->RemoveUnitFlag(UNIT_FLAG_LOOTING);
if (!player->IsInWorld())
return;
@@ -358,7 +358,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
loot = &creature->loot;
if (loot->isLooted())
{
- creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ creature->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
// skip pickpocketing loot for speed, skinning timer reduction is no-op in fact
if (!creature->IsAlive())
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index f549f75b49f..ec577cf5f77 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -394,7 +394,7 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequ
if (GetPlayer()->GetStandState() == UNIT_STAND_STATE_STAND)
GetPlayer()->SetStandState(UNIT_STAND_STATE_SIT);
GetPlayer()->SetRooted(true);
- GetPlayer()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ GetPlayer()->SetUnitFlag(UNIT_FLAG_STUNNED);
}
SetLogoutStartTime(GameTime::GetGameTime());
@@ -424,7 +424,7 @@ void WorldSession::HandleLogoutCancelOpcode(WorldPackets::Character::LogoutCance
GetPlayer()->SetStandState(UNIT_STAND_STATE_STAND);
//! DISABLE_ROTATE
- GetPlayer()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ GetPlayer()->RemoveUnitFlag(UNIT_FLAG_STUNNED);
}
}
@@ -491,7 +491,7 @@ void WorldSession::HandleStandStateChangeOpcode(WorldPacket& recvData)
return;
}
- _player->SetStandState(animstate);
+ _player->SetStandState(UnitStandStateType(animstate));
}
void WorldSession::HandleBugOpcode(WorldPacket& recvData)
@@ -635,7 +635,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
player->SetRestFlag(REST_FLAG_IN_TAVERN, atEntry->ID);
if (sWorld->IsFFAPvPRealm())
- player->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_FFA_PVP);
+ player->RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
return;
}
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp
index 95409b0a88d..a068faff376 100644
--- a/src/server/game/Handlers/PetHandler.cpp
+++ b/src/server/game/Handlers/PetHandler.cpp
@@ -598,7 +598,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
PetStable* petStable = _player->GetPetStable();
Pet* pet = ObjectAccessor::GetPet(*_player, petguid);
- if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType() != HUNTER_PET || !pet->HasByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED) ||
+ if (!pet || !pet->IsPet() || ((Pet*)pet)->getPetType() != HUNTER_PET || !pet->HasPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED) ||
pet->GetOwnerGUID() != _player->GetGUID() || !pet->GetCharmInfo() ||
!petStable || !petStable->CurrentPet || petStable->CurrentPet->PetNumber != pet->GetCharmInfo()->GetPetNumber())
return;
@@ -621,7 +621,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
if (pet->GetOwner()->GetGroup())
pet->GetOwner()->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_NAME);
- pet->RemoveByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED);
+ pet->RemovePetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED);
petStable->CurrentPet->Name = name;
petStable->CurrentPet->WasRenamed = true;
@@ -669,7 +669,7 @@ void WorldSession::HandlePetRename(WorldPacket& recvData)
CharacterDatabase.CommitTransaction(trans);
- pet->SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, uint32(GameTime::GetGameTime())); // cast can't be helped
+ pet->SetPetNameTimestamp(uint32(GameTime::GetGameTime())); // cast can't be helped
}
void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet)
@@ -901,7 +901,7 @@ void WorldSession::HandleRequestPetInfo(WorldPackets::Pet::RequestPetInfo& /*pac
if (charm->HasUnitState(UNIT_STATE_POSSESSED))
_player->PossessSpellInitialize();
// Packet sent when player controlling a vehicle
- else if (charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED))
+ else if (charm->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && charm->HasUnitFlag(UNIT_FLAG_POSSESSED))
_player->VehicleSpellInitialize();
// Packet sent when player has a charmed unit
else
diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp
index a2793fa2e98..1c6cdf1ce89 100644
--- a/src/server/game/Handlers/TaxiHandler.cpp
+++ b/src/server/game/Handlers/TaxiHandler.cpp
@@ -43,7 +43,7 @@ void WorldSession::SendTaxiStatus(ObjectGuid guid)
{
Player* const player = GetPlayer();
Creature* unit = ObjectAccessor::GetCreature(*player, guid);
- if (!unit || unit->IsHostileTo(player) || !unit->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_FLIGHTMASTER))
+ if (!unit || unit->IsHostileTo(player) || !unit->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER))
{
TC_LOG_DEBUG("network", "WorldSession::SendTaxiStatus - %s not found or you can't interact with him.", guid.ToString().c_str());
return;
diff --git a/src/server/game/Maps/MapScripts.cpp b/src/server/game/Maps/MapScripts.cpp
index 63c4113348e..76743e9ba33 100644
--- a/src/server/game/Maps/MapScripts.cpp
+++ b/src/server/game/Maps/MapScripts.cpp
@@ -448,7 +448,7 @@ void Map::ScriptsProcess()
if (Creature* cSource = _GetScriptCreatureSourceOrTarget(source, target, step.script))
{
if (step.script->Emote.Flags & SF_EMOTE_USE_STATE)
- cSource->SetUInt32Value(UNIT_NPC_EMOTESTATE, step.script->Emote.EmoteID);
+ cSource->SetEmoteState(Emote(step.script->Emote.EmoteID));
else
cSource->HandleEmoteCommand(static_cast<Emote>(step.script->Emote.EmoteID));
}
diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
index 983591d6718..77331379a75 100755
--- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
@@ -49,7 +49,7 @@ void ConfusedMovementGenerator<T>::DoInitialize(T* owner)
return;
// TODO: UNIT_FIELD_FLAGS should not be handled by generators
- owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED);
+ owner->SetUnitFlag(UNIT_FLAG_CONFUSED);
owner->StopMoving();
_timer.Reset(0);
@@ -144,7 +144,7 @@ void ConfusedMovementGenerator<Player>::DoFinalize(Player* owner, bool active, b
if (active)
{
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED);
+ owner->RemoveUnitFlag(UNIT_FLAG_CONFUSED);
owner->StopMoving();
}
}
@@ -156,7 +156,7 @@ void ConfusedMovementGenerator<Creature>::DoFinalize(Creature* owner, bool activ
if (active)
{
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED);
+ owner->RemoveUnitFlag(UNIT_FLAG_CONFUSED);
owner->ClearUnitState(UNIT_STATE_CONFUSED_MOVE);
if (owner->GetVictim())
owner->SetTarget(owner->EnsureVictim()->GetGUID());
diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
index cf724b38f88..66d596e3c12 100644
--- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
@@ -54,7 +54,7 @@ void FleeingMovementGenerator<T>::DoInitialize(T* owner)
return;
// TODO: UNIT_FIELD_FLAGS should not be handled by generators
- owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
+ owner->SetUnitFlag(UNIT_FLAG_FLEEING);
_path = nullptr;
SetTargetLocation(owner);
@@ -113,7 +113,7 @@ void FleeingMovementGenerator<Player>::DoFinalize(Player* owner, bool active, bo
if (active)
{
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
+ owner->RemoveUnitFlag(UNIT_FLAG_FLEEING);
owner->ClearUnitState(UNIT_STATE_FLEEING_MOVE);
owner->StopMoving();
}
@@ -126,7 +126,7 @@ void FleeingMovementGenerator<Creature>::DoFinalize(Creature* owner, bool active
if (active)
{
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
+ owner->RemoveUnitFlag(UNIT_FLAG_FLEEING);
owner->ClearUnitState(UNIT_STATE_FLEEING_MOVE);
if (owner->GetVictim())
owner->SetTarget(owner->EnsureVictim()->GetGUID());
@@ -256,7 +256,7 @@ void TimedFleeingMovementGenerator::Finalize(Unit* owner, bool active, bool move
if (!active)
return;
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
+ owner->RemoveUnitFlag(UNIT_FLAG_FLEEING);
owner->StopMoving();
if (Unit* victim = owner->GetVictim())
{
diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
index 88237cfc6a7..9c8dd63af2d 100644
--- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
@@ -72,7 +72,7 @@ void FlightPathMovementGenerator::DoReset(Player* owner)
RemoveFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED);
owner->CombatStopWithPets();
- owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
+ owner->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
uint32 end = GetPathAtMapEnd();
uint32 currentNodeId = GetCurrentNode();
@@ -156,7 +156,7 @@ void FlightPathMovementGenerator::DoFinalize(Player* owner, bool active, bool/*
uint32 taxiNodeId = owner->m_taxi.GetTaxiDestination();
owner->m_taxi.ClearTaxiDestinations();
owner->Dismount();
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
+ owner->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
if (owner->m_taxi.empty())
{
diff --git a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
index 2e44fc4ce3d..9d2f98ac4b4 100644
--- a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
@@ -145,7 +145,7 @@ void HomeMovementGenerator<Creature>::DoFinalize(Creature* owner, bool active, b
if (movementInform && HasFlag(MOVEMENTGENERATOR_FLAG_INFORM_ENABLED))
{
if (!owner->HasCanSwimFlagOutOfCombat())
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM);
+ owner->RemoveUnitFlag(UNIT_FLAG_CAN_SWIM);
owner->SetSpawnHealth();
owner->LoadCreaturesAddon();
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 471d1f059eb..6e4ed60221b 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -1467,7 +1467,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo
target->m_stealth.AddFlag(type);
target->m_stealth.AddValue(type, GetAmount());
- target->SetStandFlags(UNIT_STAND_FLAGS_CREEP);
+ target->SetVisFlag(UNIT_VIS_FLAGS_CREEP);
if (target->GetTypeId() == TYPEID_PLAYER)
target->SetByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_AURA_VISION, PLAYER_FIELD_BYTE2_STEALTH);
}
@@ -1479,7 +1479,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo
{
target->m_stealth.DelFlag(type);
- target->RemoveStandFlags(UNIT_STAND_FLAGS_CREEP);
+ target->RemoveVisFlag(UNIT_VIS_FLAGS_CREEP);
if (target->GetTypeId() == TYPEID_PLAYER)
target->RemoveByteFlag(PLAYER_FIELD_BYTES2, PLAYER_FIELD_BYTES_2_OFFSET_AURA_VISION, PLAYER_FIELD_BYTE2_STEALTH);
}
@@ -2096,8 +2096,8 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode,
target->SetDisplayId(model_id);
// Dragonmaw Illusion (set mount model also)
- if (GetId() == 42016 && target->GetMountID() && !target->GetAuraEffectsByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED).empty())
- target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 16314);
+ if (GetId() == 42016 && target->GetMountDisplayId() && !target->GetAuraEffectsByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED).empty())
+ target->SetMountDisplayId(16314);
}
}
}
@@ -2124,7 +2124,7 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode,
target->RestoreDisplayId();
// Dragonmaw Illusion (restore mount model)
- if (GetId() == 42016 && target->GetMountID() == 16314)
+ if (GetId() == 42016 && target->GetMountDisplayId() == 16314)
{
if (!target->GetAuraEffectsByType(SPELL_AURA_MOUNTED).empty())
{
@@ -2134,7 +2134,7 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode,
uint32 displayID = ObjectMgr::ChooseDisplayId(ci);
sObjectMgr->GetCreatureModelRandomGender(&displayID);
- target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID);
+ target->SetMountDisplayId(displayID);
}
}
}
@@ -2165,12 +2165,12 @@ void AuraEffect::HandleAuraCloneCaster(AuraApplication const* aurApp, uint8 mode
// What must be cloned? at least display and scale
target->SetDisplayId(caster->GetDisplayId());
//target->SetObjectScale(caster->GetObjectScale()); // we need retail info about how scaling is handled (aura maybe?)
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_MIRROR_IMAGE);
+ target->SetUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE);
}
else
{
target->SetDisplayId(target->GetNativeDisplayId());
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_MIRROR_IMAGE);
+ target->RemoveUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE);
}
}
@@ -2236,9 +2236,9 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo
if (aurApp->GetRemoveMode())
return;
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x
+ target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x
+ target->SetDynamicFlag(UNIT_DYNFLAG_DEAD); // blizz like 2.0.x
target->AddUnitState(UNIT_STATE_DIED);
if (Creature* creature = target->ToCreature())
@@ -2253,9 +2253,9 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo
target->SendMessageToSet(&data, true);
*/
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x
- target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x
+ target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); // blizz like 2.0.x
+ target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x
+ target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); // blizz like 2.0.x
target->ClearUnitState(UNIT_STATE_DIED);
if (Creature* creature = target->ToCreature())
@@ -2274,7 +2274,10 @@ void AuraEffect::HandleModUnattackable(AuraApplication const* aurApp, uint8 mode
if (!apply && target->HasAuraType(SPELL_AURA_MOD_UNATTACKABLE))
return;
- target->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE_2, apply);
+ if (apply)
+ target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
+ else
+ target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
// call functions which may have additional effects after changing state of unit
if (apply && (mode & AURA_EFFECT_HANDLE_REAL))
@@ -2303,26 +2306,34 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode,
if (apply ? target->GetAuraEffectsByType(type).size() > 1 : target->HasAuraType(type))
return;
- uint32 field, flag, slot;
+ void(*flagChangeFunc)(Unit * u) = nullptr;
+
+ uint32 slot;
WeaponAttackType attType;
switch (type)
{
case SPELL_AURA_MOD_DISARM:
- field = UNIT_FIELD_FLAGS;
- flag = UNIT_FLAG_DISARMED;
+ if (apply)
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag(UNIT_FLAG_DISARMED); };
+ else
+ flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag(UNIT_FLAG_DISARMED); };
slot = EQUIPMENT_SLOT_MAINHAND;
attType = BASE_ATTACK;
break;
case SPELL_AURA_MOD_DISARM_OFFHAND:
- field = UNIT_FIELD_FLAGS_2;
- flag = UNIT_FLAG2_DISARM_OFFHAND;
+ if (apply)
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); };
+ else
+ flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); };
slot = EQUIPMENT_SLOT_OFFHAND;
attType = OFF_ATTACK;
break;
case SPELL_AURA_MOD_DISARM_RANGED:
- field = UNIT_FIELD_FLAGS_2;
- flag = UNIT_FLAG2_DISARM_RANGED;
- slot = EQUIPMENT_SLOT_RANGED;
+ if (apply)
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_RANGED); };
+ else
+ flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_RANGED); };
+ slot = EQUIPMENT_SLOT_MAINHAND;
attType = RANGED_ATTACK;
break;
default:
@@ -2330,10 +2341,8 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode,
}
// set/remove flag before weapon bonuses so it's properly reflected in CanUseAttackType
- if (apply)
- target->SetFlag(field, flag);
- else
- target->RemoveFlag(field, flag);
+ if (flagChangeFunc)
+ flagChangeFunc(target);
// Handle damage modification, shapeshifted druids are not affected
if (target->GetTypeId() == TYPEID_PLAYER && !target->IsInFeralForm())
@@ -2366,7 +2375,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode,
if (apply)
{
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED);
+ target->SetUnitFlag(UNIT_FLAG_SILENCED);
// call functions which may have additional effects after changing state of unit
// Stop cast only spells vs PreventionType == SPELL_PREVENTION_TYPE_SILENCE
@@ -2382,7 +2391,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode,
if (target->HasAuraType(SPELL_AURA_MOD_SILENCE) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED);
+ target->RemoveUnitFlag(UNIT_FLAG_SILENCED);
}
}
@@ -2394,13 +2403,13 @@ void AuraEffect::HandleAuraModPacify(AuraApplication const* aurApp, uint8 mode,
Unit* target = aurApp->GetTarget();
if (apply)
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ target->SetUnitFlag(UNIT_FLAG_PACIFIED);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (target->HasAuraType(SPELL_AURA_MOD_PACIFY) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ target->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
}
}
@@ -2416,9 +2425,9 @@ void AuraEffect::HandleAuraModPacifyAndSilence(AuraApplication const* aurApp, ui
if (m_spellInfo->Id == 45839)
{
if (apply)
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
else
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
if (!(apply))
{
@@ -2515,12 +2524,12 @@ void AuraEffect::HandleAuraModStalked(AuraApplication const* aurApp, uint8 mode,
// used by spells: Hunter's Mark, Mind Vision, Syndicate Tracker (MURP) DND
if (apply)
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT);
+ target->SetDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (!target->HasAuraType(GetAuraType()))
- target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT);
+ target->RemoveDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
}
// call functions which may have additional effects after changing state of unit
@@ -2536,13 +2545,13 @@ void AuraEffect::HandleAuraUntrackable(AuraApplication const* aurApp, uint8 mode
Unit* target = aurApp->GetTarget();
if (apply)
- target->SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_STAND_FLAGS_UNTRACKABLE);
+ target->SetVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (target->HasAuraType(GetAuraType()))
return;
- target->RemoveByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_VIS_FLAG, UNIT_STAND_FLAGS_UNTRACKABLE);
+ target->RemoveVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE);
}
}
@@ -2733,13 +2742,13 @@ void AuraEffect::HandleForceMoveForward(AuraApplication const* aurApp, uint8 mod
Unit* target = aurApp->GetTarget();
if (apply)
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT);
+ target->SetUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (target->HasAuraType(GetAuraType()))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT);
+ target->RemoveUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
}
}
@@ -3056,8 +3065,8 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp,
target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_POLYMORPH, apply);
// Dragonmaw Illusion (overwrite mount model, mounted aura already applied)
- if (apply && target->HasAuraEffect(42016, 0) && target->GetMountID())
- target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 16314);
+ if (apply && target->HasAuraEffect(42016, 0) && target->GetMountDisplayId())
+ target->SetMountDisplayId(16314);
}
}
}
@@ -3192,7 +3201,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
if (apply)
{
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE);
+ target->SetUnitFlag(UNIT_FLAG_IMMUNE);
target->GetThreatManager().EvaluateSuppressed();
}
else
@@ -3200,7 +3209,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
// do not remove unit flag if there are more than this auraEffect of that kind on unit
if (target->HasAuraType(GetAuraType()) || target->HasAuraType(SPELL_AURA_DAMAGE_IMMUNITY))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE);
+ target->RemoveUnitFlag(UNIT_FLAG_IMMUNE);
}
}
@@ -3214,7 +3223,7 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m
if (apply)
{
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE);
+ target->SetUnitFlag(UNIT_FLAG_IMMUNE);
target->GetThreatManager().EvaluateSuppressed();
}
else
@@ -3222,7 +3231,7 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m
// do not remove unit flag if there are more than this auraEffect of that kind on unit
if (target->HasAuraType(GetAuraType()) || target->HasAuraType(SPELL_AURA_SCHOOL_IMMUNITY))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE);
+ target->RemoveUnitFlag(UNIT_FLAG_IMMUNE);
}
}
@@ -4290,13 +4299,13 @@ void AuraEffect::HandleArenaPreparation(AuraApplication const* aurApp, uint8 mod
Unit* target = aurApp->GetTarget();
if (apply)
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION);
+ target->SetUnitFlag(UNIT_FLAG_PREPARATION);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (target->HasAuraType(GetAuraType()))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION);
+ target->RemoveUnitFlag(UNIT_FLAG_PREPARATION);
}
}
@@ -4621,7 +4630,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool
uint32 displayID = ObjectMgr::ChooseDisplayId(creatureInfo);
sObjectMgr->GetCreatureModelRandomGender(&displayID);
- target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID);
+ target->SetMountDisplayId(displayID);
}
}
break;
@@ -4781,7 +4790,12 @@ void AuraEffect::HandleAuraEmpathy(AuraApplication const* aurApp, uint8 mode, bo
}
if (target->GetCreatureType() == CREATURE_TYPE_BEAST)
- target->ApplyModUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO, apply);
+ {
+ if (apply)
+ target->SetDynamicFlag(UNIT_DYNFLAG_SPECIALINFO);
+ else
+ target->RemoveDynamicFlag(UNIT_DYNFLAG_SPECIALINFO);
+ }
}
void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -4795,13 +4809,13 @@ void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode,
{
target->SetFaction(GetMiscValue());
if (target->GetTypeId() == TYPEID_PLAYER)
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ target->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
else
{
target->RestoreFaction();
if (target->GetTypeId() == TYPEID_PLAYER)
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ target->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
}
@@ -4813,13 +4827,13 @@ void AuraEffect::HandleComprehendLanguage(AuraApplication const* aurApp, uint8 m
Unit* target = aurApp->GetTarget();
if (apply)
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_COMPREHEND_LANG);
+ target->SetUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG);
else
{
if (target->HasAuraType(GetAuraType()))
return;
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_COMPREHEND_LANG);
+ target->RemoveUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG);
}
}
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 17a0d08bad0..ee58689813f 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -66,12 +66,12 @@ _flags(AFLAG_NONE), _effectsToApply(effMask), _needClientUpdate(false)
}
else
{
- Unit::VisibleAuraMap const* visibleAuras = GetTarget()->GetVisibleAuras();
+ Unit::VisibleAuraMap const& visibleAuras = GetTarget()->GetVisibleAuras();
// lookup for free slots in units visibleAuras
- Unit::VisibleAuraMap::const_iterator itr = visibleAuras->find(0);
+ Unit::VisibleAuraMap::const_iterator itr = visibleAuras.find(0);
for (uint32 freeSlot = 0; freeSlot < MAX_AURAS; ++itr, ++freeSlot)
{
- if (itr == visibleAuras->end() || itr->first != freeSlot)
+ if (itr == visibleAuras.end() || itr->first != freeSlot)
{
slot = freeSlot;
break;
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 3dff5e0439e..a72bffb6aa3 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2691,7 +2691,7 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, bool scaleAura, TargetInfo&
if (m_caster != unit)
{
// Recheck UNIT_FLAG_NON_ATTACKABLE for delayed spells
- if (m_spellInfo->Speed > 0.0f && unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) && unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID())
+ if (m_spellInfo->Speed > 0.0f && unit->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) && unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID())
return SPELL_MISS_EVADE;
if (m_caster->IsValidAttackTarget(unit, m_spellInfo))
@@ -2714,7 +2714,7 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, bool scaleAura, TargetInfo&
if (m_originalCaster && unit->IsInCombat() && m_spellInfo->HasInitialAggro())
{
- if (m_originalCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED)) // only do explicit combat forwarding for PvP enabled units
+ if (m_originalCaster->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // only do explicit combat forwarding for PvP enabled units
m_originalCaster->GetCombatManager().InheritCombatStatesFrom(unit); // for creature v creature combat, the threat forward does it for us
unit->GetThreatManager().ForwardThreatForAssistingMe(m_originalCaster, 0.0f, nullptr, true);
}
@@ -3099,7 +3099,7 @@ SpellCastResult Spell::prepare(SpellCastTargets const& targets, AuraEffect const
}
// Creatures focus their target when possible
- if (m_casttime && m_caster->IsCreature() && !m_spellInfo->IsNextMeleeSwingSpell() && !IsAutoRepeat() && !m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED))
+ if (m_casttime && m_caster->IsCreature() && !m_spellInfo->IsNextMeleeSwingSpell() && !IsAutoRepeat() && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_POSSESSED))
{
// Channeled spells and some triggered spells do not focus a cast target. They face their target later on via channel object guid and via spell attribute or not at all
bool const focusTarget = !m_spellInfo->IsChanneled() && !(_triggeredCastFlags & TRIGGERED_IGNORE_SET_FACING);
@@ -3352,7 +3352,7 @@ void Spell::_cast(bool skipCheck)
}
// The spell focusing is making sure that we have a valid cast target guid when we need it so only check for a guid value here.
if (Creature* creatureCaster = m_caster->ToCreature())
- if (!creatureCaster->GetTarget().IsEmpty() && !creatureCaster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED))
+ if (!creatureCaster->GetTarget().IsEmpty() && !creatureCaster->HasUnitFlag(UNIT_FLAG_POSSESSED))
if (WorldObject const* target = ObjectAccessor::GetUnit(*creatureCaster, creatureCaster->GetTarget()))
creatureCaster->SetInFront(target);
@@ -4364,13 +4364,13 @@ void Spell::UpdateSpellCastDataAmmo(WorldPackets::Spells::SpellAmmo& ammo)
}
}
}
- else if (m_caster->GetTypeId() == TYPEID_UNIT)
+ else if (Unit const* unitCaster = m_caster->ToUnit())
{
uint32 nonRangedAmmoDisplayID = 0;
uint32 nonRangedAmmoInventoryType = 0;
for (uint8 i = BASE_ATTACK; i < MAX_ATTACK; ++i)
{
- if (uint32 item_id = m_caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + i))
+ if (uint32 item_id = unitCaster->GetVirtualItemId(i))
{
if (ItemEntry const* itemEntry = sItemStore.LookupEntry(item_id))
{
@@ -4583,7 +4583,7 @@ void Spell::SendChannelUpdate(uint32 time)
if (time == 0)
{
unitCaster->SetChannelObjectGuid(ObjectGuid::Empty);
- unitCaster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0);
+ unitCaster->SetChannelSpellId(0);
}
WorldPacket data(MSG_CHANNEL_UPDATE, 8+4);
@@ -4622,7 +4622,7 @@ void Spell::SendChannelStart(uint32 duration)
creatureCaster->SetSpellFocus(this, ObjectAccessor::GetWorldObject(*creatureCaster, channelTarget));
}
- unitCaster->SetUInt32Value(UNIT_CHANNEL_SPELL, m_spellInfo->Id);
+ unitCaster->SetChannelSpellId(m_spellInfo->Id);
}
void Spell::SendResurrectRequest(Player* target)
@@ -5082,7 +5082,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
// Prevent cheating in case the player has an immunity effect and tries to interact with a non-allowed gameobject. The error message is handled by the client so we don't report anything here
if (m_caster->ToPlayer() && m_targets.GetGOTarget())
{
- if (m_targets.GetGOTarget()->GetGOInfo()->CannotBeUsedUnderImmunity() && m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE))
+ if (m_targets.GetGOTarget()->GetGOInfo()->CannotBeUsedUnderImmunity() && m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_IMMUNE))
return SPELL_FAILED_DONT_REPORT;
}
@@ -5109,7 +5109,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
}
}
- if (m_spellInfo->HasAttribute(SPELL_ATTR7_IS_CHEAT_SPELL) && !m_caster->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_CHEAT_SPELLS))
+ if (m_spellInfo->HasAttribute(SPELL_ATTR7_IS_CHEAT_SPELL) && m_caster->IsUnit() && !m_caster->ToUnit()->HasUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS))
{
m_customError = SPELL_CUSTOM_ERROR_GM_ONLY;
return SPELL_FAILED_CUSTOM_ERROR;
@@ -5591,7 +5591,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
if (m_caster->GetTypeId() != TYPEID_PLAYER || !m_targets.GetUnitTarget() || m_targets.GetUnitTarget()->GetTypeId() != TYPEID_UNIT)
return SPELL_FAILED_BAD_TARGETS;
- if (!(m_targets.GetUnitTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & UNIT_FLAG_SKINNABLE))
+ if (!m_targets.GetUnitTarget()->HasUnitFlag(UNIT_FLAG_SKINNABLE))
return SPELL_FAILED_TARGET_UNSKINNABLE;
Creature* creature = m_targets.GetUnitTarget()->ToCreature();
@@ -5843,8 +5843,8 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
dispelMask = SpellInfo::GetDispelMask(DispelType(spellEffectInfo.MiscValue));
bool hasStealableAura = false;
- Unit::VisibleAuraMap const* visibleAuras = m_targets.GetUnitTarget()->GetVisibleAuras();
- for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras->begin(); itr != visibleAuras->end(); ++itr)
+ Unit::VisibleAuraMap const& visibleAuras = m_targets.GetUnitTarget()->GetVisibleAuras();
+ for (Unit::VisibleAuraMap::const_iterator itr = visibleAuras.begin(); itr != visibleAuras.end(); ++itr)
{
if (!itr->second->IsPositive())
continue;
@@ -6159,7 +6159,7 @@ SpellCastResult Spell::CheckCasterAuras(uint32* param1) const
SpellCastResult result = SPELL_CAST_OK;
// Get unit state
- uint32 const unitflag = unitCaster->GetUInt32Value(UNIT_FIELD_FLAGS);
+ uint32 const unitflag = unitCaster->GetUnitFlags();
// this check should only be done when player does cast directly
// (ie not when it's called from a script) Breaks for example PlayerAI when charmed
@@ -7324,7 +7324,7 @@ bool Spell::CheckEffectTarget(Unit const* target, SpellEffectInfo const& spellEf
{
if (!m_targets.GetCorpseTargetGUID())
{
- if (target->IsWithinLOSInMap(m_caster, LINEOFSIGHT_ALL_CHECKS, VMAP::ModelIgnoreFlags::M2) && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE))
+ if (target->IsWithinLOSInMap(m_caster, LINEOFSIGHT_ALL_CHECKS, VMAP::ModelIgnoreFlags::M2) && target->HasUnitFlag(UNIT_FLAG_SKINNABLE))
return true;
return false;
@@ -7389,7 +7389,7 @@ bool Spell::IsProcDisabled() const
bool Spell::IsChannelActive() const
{
- return m_caster->GetUInt32Value(UNIT_CHANNEL_SPELL) != 0;
+ return m_caster->IsUnit() && m_caster->ToUnit()->GetChannelSpellId() != 0;
}
bool Spell::IsAutoActionResetSpell() const
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 720aadbb2d0..45e7a53603e 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1793,7 +1793,7 @@ void Spell::EffectOpenLock()
{
GameObjectTemplate const* goInfo = gameObjTarget->GetGOInfo();
- if (goInfo->CannotBeUsedUnderImmunity() && m_caster->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE))
+ if (goInfo->CannotBeUsedUnderImmunity() && player->HasUnitFlag(UNIT_FLAG_IMMUNE))
return;
// Arathi Basin banner opening. /// @todo Verify correctness of this check
@@ -2139,7 +2139,7 @@ void Spell::EffectSummonType()
return;
summon->SelectLevel(); // some summoned creaters have different from 1 DB data for level/hp
- summon->SetUInt32Value(UNIT_NPC_FLAGS, summon->GetCreatureTemplate()->npcflag);
+ summon->ReplaceAllNpcFlags(NPCFlags(summon->GetCreatureTemplate()->npcflag));
summon->SetImmuneToAll(true);
break;
}
@@ -2916,7 +2916,7 @@ void Spell::EffectSummonPet()
pet->SetReactState(REACT_DEFENSIVE);
}
- pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id);
+ pet->SetCreatedBySpell(m_spellInfo->Id);
// generate new name for summon pet
std::string new_name = sObjectMgr->GeneratePetName(petentry);
@@ -4226,8 +4226,8 @@ void Spell::EffectSkinning()
uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
- creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
+ creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
player->SendLoot(creature->GetGUID(), LOOT_SKINNING);
int32 const reqValue = targetLevel < 10 ? 0 : (targetLevel < 20 ? (targetLevel - 10) * 10 : targetLevel * 5);
@@ -4541,8 +4541,8 @@ void Spell::EffectResurrectPet()
pet->Relocate(x, y, z, player->GetOrientation()); // This is needed so SaveStayPosition() will get the proper coords.
}
- pet->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
- pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ pet->ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
+ pet->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
pet->setDeathState(ALIVE);
pet->ClearUnitState(UNIT_STATE_ALL_ERASABLE);
pet->SetHealth(pet->CountPctFromMaxHealth(damage));
@@ -5259,7 +5259,7 @@ void Spell::SummonGuardian(SpellEffectInfo const& spellEffectInfo, uint32 entry,
if (uint32 weapon = unitCaster->GetUInt32Value(PLAYER_VISIBLE_ITEM_16_ENTRYID))
{
summon->SetDisplayId(11686); // modelid2
- summon->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, weapon);
+ summon->SetVirtualItem(0, weapon);
}
else
summon->SetDisplayId(1126); // modelid1
@@ -5278,7 +5278,7 @@ void Spell::EffectRenamePet()
!unitTarget->IsPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET)
return;
- unitTarget->SetByteFlag(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PET_FLAGS, UNIT_CAN_BE_RENAMED);
+ unitTarget->SetPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED);
}
void Spell::EffectPlayMusic()
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 0abf694251a..65834d7c741 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1627,7 +1627,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co
if (unitTarget)
{
// spells cannot be cast if target has a pet in combat either
- if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT) && (unitTarget->IsInCombat() || unitTarget->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT)))
+ if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT) && (unitTarget->IsInCombat() || unitTarget->HasUnitFlag(UNIT_FLAG_PET_IN_COMBAT)))
return SPELL_FAILED_TARGET_AFFECTING_COMBAT;
// only spells with SPELL_ATTR3_ONLY_TARGET_GHOSTS can target ghosts
@@ -1666,7 +1666,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co
if (!player->GetWeaponForAttack(BASE_ATTACK) || !player->IsUseEquipedWeapon(true))
return SPELL_FAILED_TARGET_NO_WEAPONS;
}
- else if (!unitTarget->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID))
+ else if (!unitTarget->GetVirtualItemId(0))
return SPELL_FAILED_TARGET_NO_WEAPONS;
}
}
@@ -1700,7 +1700,7 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co
return SPELL_FAILED_BAD_TARGETS;
// checked in Unit::IsValidAttack/AssistTarget, shouldn't be checked for ENTRY targets
- //if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE) && target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ //if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_UNTARGETABLE) && target->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
// return SPELL_FAILED_BAD_TARGETS;
//if (!HasAttribute(SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS))
diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp
index d13fadbf729..9d3c98fdd77 100644
--- a/src/server/scripts/Battlefield/BattlefieldWG.cpp
+++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp
@@ -968,7 +968,7 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
HandlePromotion(killer, victim);
// Allow to Skin non-released corpse
- victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
+ victim->SetUnitFlag(UNIT_FLAG_SKINNABLE);
}
/// @todoRecent PvP activity worldstate
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index d2bd8f3e824..da9b6ad5ec7 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -225,35 +225,35 @@ public:
if (!pfactionid)
{
uint32 factionid = target->GetFaction();
- uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
- uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
- uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
+ uint32 flag = target->GetUnitFlags();
+ uint32 npcflag = target->GetNpcFlags();
+ uint32 dyflag = target->GetDynamicFlags();
handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
return true;
}
uint32 factionid = atoi(pfactionid);
- uint32 flag;
+ UnitFlags flag;
char *pflag = strtok(nullptr, " ");
if (!pflag)
- flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
+ flag = target->GetUnitFlags();
else
- flag = atoi(pflag);
+ flag = UnitFlags(atoi(pflag));
char* pnpcflag = strtok(nullptr, " ");
- uint32 npcflag;
+ NPCFlags npcflag;
if (!pnpcflag)
- npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
+ npcflag = target->GetNpcFlags();
else
- npcflag = atoi(pnpcflag);
+ npcflag = NPCFlags(atoi(pnpcflag));
char* pdyflag = strtok(nullptr, " ");
uint32 dyflag;
if (!pdyflag)
- dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
+ dyflag = target->GetDynamicFlags();
else
dyflag = atoi(pdyflag);
@@ -267,9 +267,9 @@ public:
handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
target->SetFaction(factionid);
- target->SetUInt32Value(UNIT_FIELD_FLAGS, flag);
- target->SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
- target->SetUInt32Value(UNIT_DYNAMIC_FLAGS, dyflag);
+ target->ReplaceAllUnitFlags(flag);
+ target->ReplaceAllNpcFlags(npcflag);
+ target->ReplaceAllDynamicFlags(dyflag);
return true;
}
@@ -857,7 +857,7 @@ public:
return false;
uint32 anim_id = atoi((char*)args);
- handler->GetSession()->GetPlayer()->SetUInt32Value(UNIT_NPC_EMOTESTATE, anim_id);
+ handler->GetSession()->GetPlayer()->SetEmoteState(Emote(anim_id));
return true;
}
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index a232da2ef1b..e4ee87db7b6 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -403,7 +403,7 @@ public:
return false;
}
- creature->SetUInt32Value(UNIT_NPC_FLAGS, npcFlags);
+ creature->ReplaceAllNpcFlags(npcFlags);
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_NPCFLAG);
@@ -469,7 +469,7 @@ public:
CreatureTemplate const* cInfo = target->GetCreatureTemplate();
uint32 faction = target->GetFaction();
- uint32 npcflags = target->GetUInt32Value(UNIT_NPC_FLAGS);
+ uint32 npcflags = target->GetNpcFlags();
uint32 mechanicImmuneMask = cInfo->MechanicImmuneMask;
uint32 displayid = target->GetDisplayId();
uint32 nativeid = target->GetNativeDisplayId();
@@ -494,12 +494,12 @@ public:
handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth());
handler->PSendSysMessage(LANG_NPCINFO_MOVEMENT_DATA, target->GetMovementTemplate().ToString().c_str());
- handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS));
+ handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUnitFlags());
for (UnitFlags flag : EnumUtils::Iterate<UnitFlags>())
- if (target->GetUInt32Value(UNIT_FIELD_FLAGS) & flag)
+ if (target->HasUnitFlag(flag))
handler->PSendSysMessage("* %s (0x%X)", EnumUtils::ToTitle(flag), flag);
- handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS_2), target->GetUInt32Value(UNIT_DYNAMIC_FLAGS), target->GetFaction());
+ handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUnitFlags2(), target->GetDynamicFlags(), target->GetFaction());
handler->PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(), curRespawnDelayStr.c_str());
handler->PSendSysMessage(LANG_NPCINFO_LOOT, cInfo->lootid, cInfo->pickpocketLootId, cInfo->SkinLootId);
handler->PSendSysMessage(LANG_NPCINFO_DUNGEON_ID, target->GetInstanceId());
@@ -624,7 +624,7 @@ public:
}
//play npc emote
- static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, uint32 emote)
+ static bool HandleNpcPlayEmoteCommand(ChatHandler* handler, Emote emote)
{
Creature* target = handler->getSelectedCreature();
if (!target)
@@ -634,7 +634,7 @@ public:
return false;
}
- target->SetUInt32Value(UNIT_NPC_EMOTESTATE, emote);
+ target->SetEmoteState(emote);
return true;
}
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index 604e9cc5aed..be78a9054b7 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -117,9 +117,9 @@ public:
if (player->GetShapeshiftForm() == FORM_NONE)
player->InitDisplayIds();
- player->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, UNIT_BYTE2_FLAG_PVP);
+ player->ReplaceAllPvpFlags(UNIT_BYTE2_FLAG_PVP);
- player->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ player->ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED);
//-1 is default value
player->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, uint32(-1));
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
index b16a28afc8f..7641143d621 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
@@ -159,9 +159,9 @@ class boss_doomrel : public CreatureScript
me->SetImmuneToPC(true);
if (_instance->GetData(DATA_GHOSTKILL) >= 7)
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
else
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void JustEngagedWith(Unit* /*who*/) override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
index e2e22704f2a..4bdaea4afad 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -77,7 +77,7 @@ struct boss_pyroguard_emberseer : public BossAI
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
events.Reset();
// Apply auras on spawn and reset
@@ -140,7 +140,7 @@ struct boss_pyroguard_emberseer : public BossAI
me->CastSpell(me, SPELL_EMBERSEER_FULL_STRENGTH);
Talk(EMOTE_FREE_OF_BONDS);
Talk(YELL_FREE_OF_BONDS);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
events.ScheduleEvent(EVENT_ENTER_COMBAT, 2s);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index b02c6558c83..193fd6ad699 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -185,7 +185,7 @@ struct boss_victor_nefarius : public BossAI
me->SetVisible(true);
me->SetPhaseMask(1, true);
- me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetFaction(FACTION_FRIENDLY);
me->SetStandState(UNIT_STAND_STATE_SIT_HIGH_CHAIR);
me->RemoveAura(SPELL_NEFARIANS_BARRIER);
@@ -204,7 +204,7 @@ struct boss_victor_nefarius : public BossAI
Talk(SAY_GAMESBEGIN_2);
me->SetFaction(FACTION_DRAGONFLIGHT_BLACK);
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
DoCast(me, SPELL_NEFARIANS_BARRIER);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetImmuneToPC(false);
@@ -220,7 +220,7 @@ struct boss_victor_nefarius : public BossAI
if (summon->GetEntry() != NPC_NEFARIAN)
{
summon->UpdateEntry(NPC_BONE_CONSTRUCT);
- summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ summon->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
summon->SetReactState(REACT_PASSIVE);
summon->SetStandState(UNIT_STAND_STATE_DEAD);
}
@@ -561,7 +561,7 @@ struct boss_nefarian : public BossAI
{
(*itr)->Respawn();
DoZoneInCombat((*itr));
- (*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ (*itr)->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
(*itr)->SetReactState(REACT_AGGRESSIVE);
(*itr)->SetStandState(UNIT_STAND_STATE_STAND);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
index b854edacdca..dfc591f591d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
@@ -69,9 +69,9 @@ struct boss_vaelastrasz : public BossAI
boss_vaelastrasz(Creature* creature) : BossAI(creature, DATA_VAELASTRAZ_THE_CORRUPT)
{
Initialize();
- creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
creature->SetFaction(FACTION_FRIENDLY);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void Initialize()
@@ -108,7 +108,7 @@ struct boss_vaelastrasz : public BossAI
void BeginSpeech(Unit* target)
{
PlayerGUID = target->GetGUID();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
events.ScheduleEvent(EVENT_SPEECH_1, 1s);
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
index 6980cc0073f..d4af2951a09 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
@@ -160,7 +160,7 @@ struct boss_majordomo : public BossAI
{
case EVENT_OUTRO_1:
me->NearTeleportTo(RagnarosTelePos.GetPositionX(), RagnarosTelePos.GetPositionY(), RagnarosTelePos.GetPositionZ(), RagnarosTelePos.GetOrientation());
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
case EVENT_OUTRO_2:
instance->instance->SummonCreature(NPC_RAGNAROS, RagnarosSummonPos);
@@ -179,7 +179,7 @@ struct boss_majordomo : public BossAI
{
if (action == ACTION_START_RAGNAROS)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_SUMMON_MAJ);
events.ScheduleEvent(EVENT_OUTRO_2, 8s);
events.ScheduleEvent(EVENT_OUTRO_3, 24s);
@@ -187,7 +187,7 @@ struct boss_majordomo : public BossAI
else if (action == ACTION_START_RAGNAROS_ALT)
{
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
index 915b8a20078..ebd9f7e8403 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
@@ -82,7 +82,7 @@ struct boss_ragnaros : public BossAI
Initialize();
_introState = 0;
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
SetCombatMovement(false);
}
@@ -98,7 +98,7 @@ struct boss_ragnaros : public BossAI
{
BossAI::Reset();
Initialize();
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
}
void JustEngagedWith(Unit* victim) override
@@ -156,7 +156,7 @@ struct boss_ragnaros : public BossAI
break;
case EVENT_INTRO_5:
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
_introState = 2;
break;
@@ -172,8 +172,8 @@ struct boss_ragnaros : public BossAI
//Become unbanished again
me->SetReactState(REACT_AGGRESSIVE);
me->SetFaction(FACTION_MONSTER);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
AttackStart(target);
@@ -250,8 +250,8 @@ struct boss_ragnaros : public BossAI
//Root self
//DoCast(me, 23973);
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetEmoteState(EMOTE_STATE_SUBMERGED);
me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
instance->SetData(DATA_RAGNAROS_ADDS, 0);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index 057f5384dfe..69c28424726 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -163,7 +163,7 @@ public:
_scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoZoneInCombat();
});
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index e85a7d205a8..35394225430 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -158,7 +158,7 @@ public:
events.SetPhase(PHASE_INTRO);
me->setActive(true);
me->SetFarVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->GetMotionMaster()->MoveAlongSplineChain(POINT_INTRO_START, SPLINE_CHAIN_INTRO_START, false);
HandleTerraceDoors(false);
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index 9bd1c87cd1a..9360d3200ee 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -158,7 +158,7 @@ public:
if (spellInfo->Id == SPELL_INFERNAL_RELAY)
{
me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID));
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
HellfireTimer = 4000;
CleanupTimer = 170000;
}
@@ -449,7 +449,7 @@ public:
Creature* axe = me->SummonCreature(MALCHEZARS_AXE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1s);
if (axe)
{
- axe->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ axe->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
axe->SetFaction(me->GetFaction());
axes[i] = axe->GetGUID();
if (target)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index 40f82077314..f06c6246569 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -246,7 +246,7 @@ public:
else FrostCooldown = 0;
}
- if (!Drinking && me->GetMaxPower(POWER_MANA) && (me->GetPower(POWER_MANA)*100 / me->GetMaxPower(POWER_MANA)) < 20)
+ if (!Drinking && me->GetMaxPower(POWER_MANA) && me->GetPowerPct(POWER_MANA) < 20.f)
{
Drinking = true;
me->InterruptNonMeleeSpells(false);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index 9ca1f23d69f..2e6314c1748 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -182,7 +182,7 @@ public:
void AttackStart(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -191,7 +191,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -203,7 +203,7 @@ public:
{
if (AggroTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
AggroTimer = 0;
} else AggroTimer -= diff;
}
@@ -347,7 +347,7 @@ public:
void AttackStart(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -356,7 +356,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -403,7 +403,7 @@ public:
{
if (AggroTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
AggroTimer = 0;
} else AggroTimer -= diff;
}
@@ -481,7 +481,7 @@ public:
void AttackStart(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -490,7 +490,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -514,7 +514,7 @@ public:
{
if (AggroTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
AggroTimer = 0;
} else AggroTimer -= diff;
}
@@ -585,7 +585,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -593,7 +593,7 @@ public:
void AttackStart(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -627,7 +627,7 @@ public:
{
if (AggroTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
AggroTimer = 0;
} else AggroTimer -= diff;
}
@@ -683,7 +683,7 @@ public:
// Anyway, I digress.
// @todo This line below is obviously a hack. Duh. I'm just coming in here to hackfix the encounter to actually be completable.
// It needs a rewrite. Badly. Please, take good care of it.
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
CycloneTimer = 30000;
ChainLightningTimer = 10000;
@@ -1019,7 +1019,7 @@ void PretendToDie(Creature* creature)
creature->InterruptNonMeleeSpells(true);
creature->RemoveAllAuras();
creature->SetHealth(0);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
creature->GetMotionMaster()->Clear();
creature->GetMotionMaster()->MoveIdle();
creature->SetStandState(UNIT_STAND_STATE_DEAD);
@@ -1027,7 +1027,7 @@ void PretendToDie(Creature* creature)
void Resurrect(Creature* target)
{
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->SetFullHealth();
target->SetStandState(UNIT_STAND_STATE_STAND);
target->CastSpell(target, SPELL_RES_VISUAL, true);
@@ -1115,7 +1115,7 @@ public:
void AttackStart(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -1124,7 +1124,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -1252,11 +1252,11 @@ public:
{
if (Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID)))
{
- Julianne->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Julianne->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Julianne->GetMotionMaster()->Clear();
Julianne->setDeathState(JUST_DIED);
Julianne->CombatStop(true);
- Julianne->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ Julianne->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE);
}
return;
}
@@ -1292,7 +1292,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -1380,7 +1380,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
if (AggroYellTimer <= diff)
{
Talk(SAY_JULIANNE_AGGRO);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetFaction(FACTION_MONSTER_2);
AggroYellTimer = 0;
} else AggroYellTimer -= diff;
@@ -1521,11 +1521,11 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& dama
{
if (Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID)))
{
- Romulo->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Romulo->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Romulo->GetMotionMaster()->Clear();
Romulo->setDeathState(JUST_DIED);
Romulo->CombatStop(true);
- Romulo->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ Romulo->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE);
}
return;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index cfcaae42b14..206c8b2646e 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -196,7 +196,7 @@ public:
me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.0f,
TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 1min))
{
- spotlight->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ spotlight->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
spotlight->CastSpell(spotlight, SPELL_SPOTLIGHT, false);
m_uiSpotlightGUID = spotlight->GetGUID();
}
@@ -272,11 +272,7 @@ public:
float PosX = Spawns[index][1];
if (Creature* creature = me->SummonCreature(entry, PosX, SPAWN_Y, SPAWN_Z, SPAWN_O, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 2h))
- {
- // In case database has bad flags
- creature->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
RaidWiped = false;
@@ -467,7 +463,7 @@ public:
void Reset() override
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (instance->GetGuidData(DATA_IMAGE_OF_MEDIVH).IsEmpty())
{
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index ca3a96f9497..d0a6cee6b06 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -283,7 +283,7 @@ struct boss_felblood_kaelthas : public BossAI
{
case EVENT_TALK_INTRO_1:
Talk(SAY_INTRO_1);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
+ me->SetEmoteState(EMOTE_STATE_TALK);
events.ScheduleEvent(EVENT_TALK_INTRO_2, 20s + 600ms, 0, PHASE_INTRO);
events.ScheduleEvent(EVENT_LAUGH_EMOTE, 15s + 600ms, 0, PHASE_INTRO);
break;
@@ -295,7 +295,7 @@ struct boss_felblood_kaelthas : public BossAI
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH_NO_SHEATHE);
break;
case EVENT_FINISH_INTRO:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->SetImmuneToPC(false);
break;
case EVENT_FIREBALL:
@@ -412,7 +412,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI
me->AttackStop();
me->SetReactState(REACT_PASSIVE);
me->RemoveAllAuras();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_EMBER_BLAST);
// DoCastSelf(SPELL_SUMMON_PHOENIX_EGG); -- We do a manual summon for now. Feel free to move it to spelleffect_dbc
if (Creature* egg = DoSummon(NPC_PHOENIX_EGG, me->GetPosition(), 0s))
@@ -469,7 +469,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI
_isInEgg = false;
DoCastSelf(SPELL_FULL_HEAL);
DoCastSelf(SPELL_BURN);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_events.ScheduleEvent(EVENT_ATTACK_PLAYERS, 2s);
break;
default:
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index 8a8dcd29a8f..1747d99f3db 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -242,10 +242,7 @@ public:
if (instance->GetData(DATA_DELRISSA_DEATH_COUNT) == MAX_ACTIVE_LACKEY)
instance->SetBossState(DATA_PRIESTESS_DELRISSA, DONE);
else
- {
- if (me->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE))
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- }
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
}
void UpdateAI(uint32 diff) override
@@ -424,8 +421,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI
//time to make her lootable and complete event if she died before lackeys
if (!delrissa->IsAlive())
{
- if (!delrissa->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE))
- delrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ delrissa->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
instance->SetBossState(DATA_PRIESTESS_DELRISSA, DONE);
}
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index 98bd562cb22..8cb2c5e0d10 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -153,7 +153,7 @@ class boss_selin_fireheart : public CreatureScript
Unit* CrystalChosen = ObjectAccessor::GetUnit(*me, CrystalGUID);
if (CrystalChosen && CrystalChosen->IsAlive())
{
- CrystalChosen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ CrystalChosen->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
CrystalChosen->CastSpell(me, SPELL_MANA_RAGE, true);
events.ScheduleEvent(EVENT_EMPOWER, 10s, PHASE_DRAIN);
}
@@ -222,7 +222,7 @@ class boss_selin_fireheart : public CreatureScript
return;
}
- if (me->GetPower(POWER_MANA) * 100 / me->GetMaxPower(POWER_MANA) < 10)
+ if (me->GetPowerPct(POWER_MANA) < 10.f)
{
if (events.IsInPhase(PHASE_NORMAL) && !_scheduledEvents)
{
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 4d6065bb503..587f4a67d43 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -569,7 +569,7 @@ public:
me->RestoreFaction();
CombatAI::Reset();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM);
+ me->SetUnitFlag(UNIT_FLAG_CAN_SWIM);
}
void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override
@@ -661,7 +661,7 @@ public:
return true;
me->SetImmuneToPC(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CAN_SWIM);
+ me->RemoveUnitFlag(UNIT_FLAG_CAN_SWIM);
player->CastSpell(me, SPELL_DUEL, false);
player->CastSpell(player, SPELL_DUEL_FLAG, true);
@@ -884,7 +884,7 @@ class spell_deliver_stolen_horse : public SpellScript
Unit* caster = GetCaster();
caster->RemoveAurasDueToSpell(SPELL_EFFECT_STOLEN_HORSE);
- caster->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+ caster->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
caster->SetFaction(FACTION_FRIENDLY);
caster->CastSpell(caster, SPELL_CALL_DARK_RIDER, true);
@@ -926,8 +926,8 @@ public:
return;
deathcharger->RestoreFaction();
- deathcharger->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
- deathcharger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ deathcharger->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
+ deathcharger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (!me->GetVehicle() && deathcharger->IsVehicle() && deathcharger->GetVehicleKit()->HasEmptySeat(0))
me->EnterVehicle(deathcharger);
}
@@ -940,8 +940,8 @@ public:
if (killer->GetTypeId() == TYPEID_PLAYER && deathcharger->GetTypeId() == TYPEID_UNIT && deathcharger->IsVehicle())
{
- deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
- deathcharger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ deathcharger->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
+ deathcharger->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
deathcharger->SetFaction(FACTION_SCARLET_CRUSADE_2);
}
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index 539150de929..f50d6c03f3a 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -138,9 +138,9 @@ struct npc_koltira_deathweaver : public ScriptedAI
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_DEAD);
+ me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
+ me->SetStandState(UNIT_STAND_STATE_DEAD);
me->RemoveAllAuras();
_events.Reset();
@@ -164,14 +164,14 @@ struct npc_koltira_deathweaver : public ScriptedAI
switch (eventId)
{
case EVENT_INTRO_0:
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_SIT);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetStandState(UNIT_STAND_STATE_SIT);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_KOLTIRA_0);
_events.ScheduleEvent(EVENT_INTRO_1, 5s);
break;
case EVENT_INTRO_1:
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
Talk(SAY_KOLTIRA_1);
_events.ScheduleEvent(EVENT_INTRO_2, 2s);
@@ -190,7 +190,7 @@ struct npc_koltira_deathweaver : public ScriptedAI
case EVENT_INTRO_4:
DoCastSelf(SPELL_KOLTIRA_TRANSFORM);
me->LoadEquipment(POINT_ID_1);
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
me->GetMotionMaster()->MovePoint(POINT_ID_2, koltiraPos[2], true, 3.839724f);
break;
@@ -202,8 +202,8 @@ struct npc_koltira_deathweaver : public ScriptedAI
break;
case EVENT_INTRO_6:
Talk(SAY_KOLTIRA_3);
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_eventGossip = true;
break;
@@ -240,8 +240,8 @@ struct npc_koltira_deathweaver : public ScriptedAI
break;
case EVENT_OUTRO_1:
me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE);
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_KOLTIRA_8);
_events.ScheduleEvent(EVENT_OUTRO_2, 7s);
@@ -259,7 +259,7 @@ struct npc_koltira_deathweaver : public ScriptedAI
break;
case EVENT_OUTRO_4:
me->SetWalk(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
DoCastSelf(SPELL_HERO_AGGRO);
me->GetMotionMaster()->MovePath(NPC_KOLTIRA, false);
@@ -290,7 +290,7 @@ struct npc_koltira_deathweaver : public ScriptedAI
{
if (pointId == POINT_ID_1)
{
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
FakeValrothTalk(SAY_VALROTH_0);
_events.ScheduleEvent(EVENT_SPAWN_WAVE_1, 1s);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 9b33e002de8..b5d5607ac09 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -526,7 +526,7 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))
{
temp->SetWalk(true);
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+ temp->SetEmoteState(EMOTE_STATE_READY2H);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))
@@ -566,7 +566,7 @@ public:
JumpToNextStep(2000);
break;
case 8:
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
+ me->SetVirtualItem(0, uint32(EQUIP_UNEQUIP));
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))
me->CastSpell(temp, SPELL_ASHBRINGER, true);
Talk(EMOTE_LIGHT_OF_DAWN14);
@@ -600,7 +600,7 @@ public:
//UpdateWorldState(me->GetMap(), WORLD_STATE_REMAINS, 1);
UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 0);
UpdateWorldState(me->GetMap(), WORLD_STATE_EVENT_BEGIN, 1);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
JumpToNextStep(3000);
break;
@@ -758,7 +758,7 @@ public:
case 15: // summon gate
if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_ALEXANDROS_MOGRAINE, LightofDawnLoc[22], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 5min))
{
- temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ temp->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
temp->CastSpell(temp, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true);
temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN06);
uiAlexandrosGUID = temp->GetGUID();
@@ -769,7 +769,7 @@ public:
case 16: // Alexandros out
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))
{
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ temp->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23]);
temp->AI()->Talk(SAY_LIGHT_OF_DAWN32);
}
@@ -974,7 +974,7 @@ public:
if (fLichPositionX && fLichPositionY)
{
Unit* temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10s);
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
+ temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeedRate(MOVE_RUN, 2.0f);
temp->SetFaction(me->GetFaction());
@@ -982,7 +982,7 @@ public:
uiDefenderGUID[0] = temp->GetGUID();
temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].GetPositionWithOffset({ float(rand32() % 10), float(rand32() % 10), 0.0f, 0.0f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10s);
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
+ temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeedRate(MOVE_RUN, 2.0f);
temp->SetFaction(me->GetFaction());
@@ -991,7 +991,7 @@ public:
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
+ temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeedRate(MOVE_RUN, 2.0f);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
@@ -999,7 +999,7 @@ public:
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
+ temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeedRate(MOVE_RUN, 2.0f);
temp->HandleEmoteCommand(EMOTE_STATE_ATTACK_UNARMED);
@@ -1007,7 +1007,7 @@ public:
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);
+ temp->SetEmoteState(EMOTE_STATE_ATTACK_UNARMED);
temp->SetWalk(false);
temp->SetSpeedRate(MOVE_RUN, 2.0f);
temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);
@@ -1022,21 +1022,21 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ temp->SetEmoteState(EMOTE_ONESHOT_NONE);
temp->SetSpeedRate(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[14]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ temp->SetEmoteState(EMOTE_ONESHOT_NONE);
temp->SetSpeedRate(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[11]);
}
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ temp->SetEmoteState(EMOTE_ONESHOT_NONE);
temp->SetSpeedRate(MOVE_RUN, 6.0f);
temp->SetStandState(UNIT_STAND_STATE_DEAD);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[17]);
@@ -1086,7 +1086,7 @@ public:
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))
{
temp->SetStandState(UNIT_STAND_STATE_STAND);
- temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_HIGHLORD_TIRION_FORDRING));
+ temp->SetVirtualItem(0, uint32(EQUIP_HIGHLORD_TIRION_FORDRING));
temp->CastSpell(temp, SPELL_REBIRTH_OF_THE_ASHBRINGER, false);
}
JumpToNextStep(1000);
@@ -1131,7 +1131,7 @@ public:
{
temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN16);
temp->CastSpell(temp, SPELL_TIRION_CHARGE, false); // jumping charge
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+ temp->SetEmoteState(EMOTE_STATE_READY2H);
temp->SetSpeedRate(MOVE_RUN, 3.0f); // workarounds, make Tirion still running
temp->SetWalk(false);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2]);
@@ -1186,7 +1186,7 @@ public:
temp->CastSpell(temp, SPELL_TELEPORT_VISUAL, false);
if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) // Tirion runs to Darion
{
- temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ temp->SetEmoteState(EMOTE_ONESHOT_NONE);
temp->SetSpeedRate(MOVE_RUN, 1.0f);
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[6]);
}
@@ -1378,7 +1378,7 @@ public:
if (Creature* temp = me->SummonCreature(NPC_HIGHLORD_TIRION_FORDRING, LightofDawnLoc[0].GetPositionWithOffset({ 0.0f, 0.0f, 0.0f, 1.528f }), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10min))
{
temp->SetFaction(me->GetFaction());
- temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
+ temp->SetVirtualItem(0, uint32(EQUIP_UNEQUIP));
temp->AI()->Talk(SAY_LIGHT_OF_DAWN25);
uiTirionGUID = temp->GetGUID();
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 74b4410b45e..9bb3b7c0a00 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -199,7 +199,7 @@ struct npc_headless_horseman_head : public PassiveAI
void HandleInitialSetup()
{
DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_HEAD_STUN);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_phase = PHASE_1;
_events.SetPhase(PHASE_1);
}
@@ -256,7 +256,7 @@ struct npc_headless_horseman_head : public PassiveAI
{
me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_C_HEAD_STUN);
DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_HEAD_VISUAL, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->GetMotionMaster()->MoveRandom(30.0f);
switch (_phase)
@@ -311,11 +311,11 @@ struct npc_headless_horseman_head : public PassiveAI
DoCast(horseman, SPELL_HEADLESS_HORSEMAN_C_RETURN_HEAD, true);
me->RemoveAllAttackers();
me->GetMotionMaster()->Clear();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
break;
case EVENT_RAIN_OF_TREATS:
DoCastSelf(SPELL_RAIN_OF_TREATS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_instance->SetData(DATA_PREPARE_RESET, 0);
if (GameObject* pumpkin = me->SummonGameObject(GO_PUMPKIN_SHRINE, GOPumpkinSpawnPosition, GOPumpkinSpawnQuat, 7_days))
me->RemoveGameObject(pumpkin, false);
@@ -707,8 +707,8 @@ struct npc_sir_thomas : public PassiveAI
void Reset() override
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_HEADLESS_HORSEMAN_WISP_INVIS);
_scheduler.Schedule(9s, [this](TaskContext /*context*/)
@@ -721,8 +721,8 @@ struct npc_sir_thomas : public PassiveAI
{
if (spellInfo->Id == SPELL_HEADLESS_HORSEMAN_WISP_FLIGHT_PORT)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_WISP_INVIS);
DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_GHOST_VISUAL, true);
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
index 0b9ebe6b2ce..e81e35e53e5 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -96,7 +96,7 @@ public:
_killYellTimer.Reset(0s);
DoCastSelf(SPELL_RETRIBUTION_AURA, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetReactState(REACT_AGGRESSIVE);
@@ -170,7 +170,7 @@ public:
me->ClearComboPointHolders();
me->RemoveAllAuras();
me->ClearAllReactives();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->SetReactState(REACT_PASSIVE); // prevent Mograine from attacking while fake death
@@ -192,7 +192,7 @@ public:
// Say text
Talk(SAY_MO_RESURRECTED);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetStandState(UNIT_STAND_STATE_STAND);
});
@@ -203,7 +203,7 @@ public:
events.ScheduleEvent(EVENT_HAMMER_OF_JUSTICE, 10s, 15s);
// We can now die
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
_canDie = true;
DoCastSelf(SPELL_RETRIBUTION_AURA, true);
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
index 3c84527a48e..97a0d1fa435 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
@@ -90,14 +90,14 @@ public:
break;
case EVENT_ILLUSION:
DoCast(SPELL_ILLUSION);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisplayId(11686); // Invisible Model
ModifyThreatByPercent(me->GetVictim(), -99);
events.ScheduleEvent(EVENT_SET_VISIBILITY, 3s);
events.ScheduleEvent(EVENT_ILLUSION, 25s);
break;
case EVENT_SET_VISIBILITY:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisplayId(11073); //Jandice Model
break;
default:
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
index 63cc9e551a1..05ec449e8d1 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
@@ -129,7 +129,7 @@ class boss_kirtonos_the_herald : public CreatureScript
events.ScheduleEvent(INTRO_1, 500ms);
me->SetDisableGravity(true);
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
Talk(EMOTE_SUMMONED);
}
@@ -178,8 +178,8 @@ class boss_kirtonos_the_herald : public CreatureScript
break;
case INTRO_5:
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
+ me->SetVirtualItem(0, uint32(WEAPON_KIRTONOS_STAFF));
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
events.ScheduleEvent(INTRO_6, 5s);
break;
@@ -233,13 +233,13 @@ class boss_kirtonos_the_herald : public CreatureScript
if (me->HasAura(SPELL_KIRTONOS_TRANSFORM))
{
me->RemoveAura(SPELL_KIRTONOS_TRANSFORM);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0));
+ me->SetVirtualItem(0, uint32(0));
me->SetCanFly(false);
}
else
{
DoCast(me, SPELL_KIRTONOS_TRANSFORM);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
+ me->SetVirtualItem(0, uint32(WEAPON_KIRTONOS_STAFF));
me->SetCanFly(true);
}
events.ScheduleEvent(EVENT_KIRTONOS_TRANSFORM, 16s, 18s);
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
index fbf53d96f7d..8531267112a 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
@@ -101,7 +101,7 @@ struct boss_apothecary_hummel : public BossAI
{
if (menuId == GOSSIP_MENU_HUMMEL && gossipListId == GOSSIP_OPTION_START)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
CloseGossipMenuFor(player);
DoAction(ACTION_START_EVENT);
}
@@ -150,7 +150,7 @@ struct boss_apothecary_hummel : public BossAI
_isDead = true;
me->RemoveAurasDueToSpell(SPELL_ALLURING_PERFUME);
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Talk(SAY_HUMMEL_DEATH);
}
}
@@ -171,7 +171,7 @@ struct boss_apothecary_hummel : public BossAI
Talk(SAY_HUMMEL_DEATH);
events.Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
instance->SetBossState(DATA_APOTHECARY_HUMMEL, DONE);
Map::PlayerList const& players = me->GetMap()->GetPlayers();
@@ -302,7 +302,7 @@ struct npc_apothecary_genericAI : public ScriptedAI
void MovementInform(uint32 type, uint32 pointId) override
{
if (type == POINT_MOTION_TYPE && pointId == 1)
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
}
protected:
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
index 5e624ae41e4..c4a2df94fe2 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp
@@ -170,7 +170,7 @@ class instance_stratholme : public InstanceMapScript
break;
case NPC_YSIDA:
ysidaGUID = creature->GetGUID();
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
break;
}
}
@@ -278,7 +278,7 @@ class instance_stratholme : public InstanceMapScript
ysida->CastSpell(nullptr, SPELL_YSIDA_SAVED, true);
ysida->SetWalk(true);
ysida->AI()->Talk(SAY_YSIDA_SAVED);
- ysida->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ ysida->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
ysida->GetClosePoint(x, y, z, ysida->GetObjectScale() / 3, 4.0f);
ysida->GetMotionMaster()->MovePoint(1, x, y, z);
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index 549797c12fb..ee0104f9b0f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -158,7 +158,7 @@ public:
IsIntro = true;
Madrigosa->SetMaxHealth(me->GetMaxHealth());
Madrigosa->SetHealth(me->GetMaxHealth());
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->Attack(Madrigosa, true);
Madrigosa->Attack(me, true);
}
@@ -172,7 +172,7 @@ public:
void EndIntro()
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
Intro = false;
IsIntro = false;
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 09062b079fd..4a40289eb12 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -158,7 +158,7 @@ public:
instance->SetBossState(DATA_EREDAR_TWINS, DONE);
}
else
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
}
void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override
@@ -438,7 +438,7 @@ public:
instance->SetBossState(DATA_EREDAR_TWINS, DONE);
}
else
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
}
void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index e75f3860926..ebaf536ccdb 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -147,8 +147,8 @@ public:
events.Reset();
me->SetDisableGravity(true);
- me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
- me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
+ me->SetBoundingRadius(10);
+ me->SetCombatReach(10);
DespawnSummons(NPC_VAPOR_TRAIL);
me->setActive(false);
@@ -560,7 +560,7 @@ public:
{
DoCast(me, SPELL_TRAIL_TRIGGER, true);
me->SetTarget(me->GetGUID());
- me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 0.01f); // core bug
+ me->SetBoundingRadius(0.01f); // core bug
}
void Reset() override { }
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 4ed378da0b7..7b2e2ef6fcf 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -263,7 +263,7 @@ public:
{
Initialize();
me->SetDisableGravity(true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->setActive(true);
me->SetFarVisible(true);
@@ -443,8 +443,8 @@ public:
void InitializeAI() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->AddUnitState(UNIT_STATE_STUNNED);
ScriptedAI::InitializeAI();
@@ -589,7 +589,7 @@ public:
if (Creature* pKalec = instance->GetCreature(DATA_KALECGOS_KJ))
pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES);
- me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12);
+ me->SetCombatReach(12);
summons.DespawnAll();
}
@@ -616,8 +616,8 @@ public:
{
if (summoned->GetEntry() == NPC_ARMAGEDDON_TARGET)
{
- summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ summoned->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
// summoned->SetVisibility(VISIBILITY_OFF); //with this we cant see the armageddon visuals
}
else
@@ -1037,7 +1037,7 @@ public:
void Reset() override
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE|UNIT_FLAG_NON_ATTACKABLE);
}
void JustSummoned(Creature* summoned) override
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index 27609a0688c..83ddf0563af 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -233,7 +233,7 @@ struct boss_muru : public BossAI
{
_Reset();
Initialize();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(true);
}
@@ -280,7 +280,7 @@ struct boss_muru : public BossAI
_phase = PHASE_TWO;
me->RemoveAllAuras();
DoCast(me, SPELL_OPEN_ALL_PORTALS, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
scheduler.Schedule(Seconds(6), [this](TaskContext /*context*/)
{
@@ -372,7 +372,7 @@ struct npc_dark_fiend : public ScriptedAI
_scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Creature* _summoner = ObjectAccessor::GetCreature(*me, _summonerGUID))
if (Unit* target = _summoner->AI()->SelectTarget(SelectTargetMethod::Random, 0))
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index 316cc7524c8..116a555c2e5 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -101,7 +101,7 @@ class boss_archaedas : public CreatureScript
instance->SetData(0, 5); // respawn any dead minions
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->AddAura(SPELL_FREEZE_ANIM, me);
}
@@ -114,7 +114,7 @@ class boss_archaedas : public CreatureScript
{
DoCast(minion, SPELL_AWAKEN_VAULT_WALKER, flag);
minion->CastSpell(minion, SPELL_ARCHAEDAS_AWAKEN, true);
- minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ minion->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
minion->SetControlled(false, UNIT_STATE_ROOT);
minion->SetFaction(FACTION_MONSTER);
minion->RemoveAura(SPELL_MINION_FREEZE_ANIM);
@@ -124,7 +124,7 @@ class boss_archaedas : public CreatureScript
void JustEngagedWith(Unit* /*who*/) override
{
me->SetFaction(FACTION_MONSTER);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
}
@@ -264,7 +264,7 @@ class npc_archaedas_minions : public CreatureScript
Initialize();
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->RemoveAllAuras();
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
@@ -274,7 +274,7 @@ class npc_archaedas_minions : public CreatureScript
{
me->SetFaction(FACTION_MONSTER);
me->RemoveAllAuras();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
bAmIAwake = true;
}
@@ -353,7 +353,7 @@ class npc_stonekeepers : public CreatureScript
void Reset() override
{
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->RemoveAllAuras();
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
@@ -362,7 +362,7 @@ class npc_stonekeepers : public CreatureScript
void JustEngagedWith(Unit* /*who*/) override
{
me->SetFaction(FACTION_MONSTER);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index 399a13d7e1a..ec21f8fddc5 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -151,7 +151,7 @@ class instance_uldaman : public InstanceMapScript
{
creature->SetFaction(FACTION_FRIENDLY);
creature->RemoveAllAuras();
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
creature->SetControlled(true, UNIT_STATE_ROOT);
creature->AddAura(SPELL_MINION_FREEZE_ANIM, creature);
}
@@ -185,7 +185,7 @@ class instance_uldaman : public InstanceMapScript
continue;
target->SetControlled(false, UNIT_STATE_ROOT);
target->SetFaction(FACTION_MONSTER);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
return; // only want the first one we find
@@ -208,7 +208,7 @@ class instance_uldaman : public InstanceMapScript
if (!target || !target->IsAlive() || target->GetFaction() == FACTION_MONSTER)
continue;
target->SetControlled(false, UNIT_STATE_ROOT);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->SetFaction(FACTION_MONSTER);
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
archaedas->CastSpell(target, SPELL_AWAKEN_VAULT_WALKER, true);
@@ -263,7 +263,7 @@ class instance_uldaman : public InstanceMapScript
archaedas->RemoveAura(SPELL_FREEZE_ANIM);
archaedas->CastSpell(archaedas, SPELL_ARCHAEDAS_AWAKEN, false);
archaedas->SetFaction(FACTION_TITAN);
- archaedas->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ archaedas->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
whoWokeuiArchaedasGUID = target;
}
}
@@ -276,7 +276,7 @@ class instance_uldaman : public InstanceMapScript
ironaya->SetFaction(FACTION_TITAN);
ironaya->SetControlled(false, UNIT_STATE_ROOT);
- ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ ironaya->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
ironaya->GetMotionMaster()->Clear();
ironaya->GetMotionMaster()->MovePoint(0, IronayaPoint);
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
index 7cdbd1eacd8..ad5f9e9588c 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
@@ -191,7 +191,7 @@ class boss_akilzon : public CreatureScript
trigger->SetFaction(FACTION_FRIENDLY);
trigger->SetMaxHealth(100000);
trigger->SetHealth(100000);
- trigger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ trigger->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Cloud)
{
CastSpellExtraArgs args;
@@ -291,7 +291,7 @@ class boss_akilzon : public CreatureScript
Cloud->SetFaction(FACTION_FRIENDLY);
Cloud->SetMaxHealth(9999999);
Cloud->SetHealth(9999999);
- Cloud->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Cloud->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
StormCount = 1;
events.ScheduleEvent(EVENT_ELECTRICAL_STORM, 1min); // 60 seconds(bosskillers)
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index eeb31d4ccc3..7a2eeef610a 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -184,7 +184,7 @@ class boss_halazzi : public CreatureScript
if (Unit* pLynx = ObjectAccessor::GetUnit(*me, LynxGUID))
{
Talk(SAY_MERGE);
- pLynx->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ pLynx->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
pLynx->GetMotionMaster()->Clear();
pLynx->GetMotionMaster()->MoveFollow(me, 0, 0);
me->GetMotionMaster()->Clear();
@@ -371,7 +371,7 @@ class npc_halazzi_lynx : public CreatureScript
void AttackStart(Unit* who) override
{
- if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
ScriptedAI::AttackStart(who);
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
index 5c3d213f2cc..3a5dc9f3e87 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
@@ -429,7 +429,7 @@ class boss_hexlord_malacrass : public CreatureScript
else
{
trigger->SetDisplayId(11686);
- trigger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ trigger->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
trigger->CastSpell(target, SPELL_SIPHON_SOUL, true);
trigger->GetMotionMaster()->MoveChase(me);
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 195750663a0..ec661a69469 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -278,9 +278,9 @@ class boss_janalai : public CreatureScript
{
if (Unit* FireBomb = ObjectAccessor::GetUnit(*me, FireBombGUIDs[BombCount]))
{
- FireBomb->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ FireBomb->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCast(FireBomb, SPELL_FIRE_BOMB_THROW, true);
- FireBomb->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ FireBomb->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
++BombCount;
if (BombCount == 40)
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
index 8d44c4b3c74..09be494a80c 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
@@ -132,8 +132,8 @@ class boss_nalorakk : public CreatureScript
if (MoveEvent)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
inMove = false;
waitTimer = 0;
me->SetSpeedRate(MOVE_RUN, 2);
@@ -225,8 +225,8 @@ class boss_nalorakk : public CreatureScript
Talk(YELL_NALORAKK_WAVE4);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
MoveEvent = false;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
index 2a38d1e586e..e1c4f20c7fd 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
@@ -197,7 +197,7 @@ class boss_zuljin : public CreatureScript
Initialize();
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 33975);
+ me->SetVirtualItem(0, 33975);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 218172674);
//me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE);
}
@@ -226,7 +226,7 @@ class boss_zuljin : public CreatureScript
Talk(YELL_DEATH);
if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[3]))
- Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
+ Temp->SetStandState(UNIT_STAND_STATE_DEAD);
}
void AttackStart(Unit* who) override
@@ -267,8 +267,8 @@ class boss_zuljin : public CreatureScript
if (Creature* creature = me->SummonCreature(SpiritInfo[i].entry, SpiritInfo[i].pos, TEMPSUMMON_DEAD_DESPAWN))
{
creature->CastSpell(creature, SPELL_SPIRIT_AURA, true);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
SpiritGUID[i] = creature->GetGUID();
}
}
@@ -302,14 +302,14 @@ class boss_zuljin : public CreatureScript
case 4:
DoTeleportTo(CENTER_X, CENTER_Y, CENTER_Z, 100);
ResetThreatList();
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
+ me->SetVirtualItem(0, 0);
me->RemoveAurasDueToSpell(Transform[Phase].unaura);
DoCast(me, Transform[Phase].spell);
Talk(Transform[Phase].text);
if (Phase > 0)
{
if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[Phase - 1]))
- Temp->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
+ Temp->SetStandState(UNIT_STAND_STATE_DEAD);
}
if (Unit* Temp = ObjectAccessor::GetUnit(*me, SpiritGUID[NextPhase - 1]))
Temp->CastSpell(me, SPELL_SIPHON_SOUL, false); // should m cast on temp
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index 9a755e05246..736cdd27286 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -161,8 +161,8 @@ class instance_zulaman : public InstanceMapScript
{
if (Unit* hostage = player->SummonCreature(HostageInfo[num].npc, HostageInfo[num].pos, TEMPSUMMON_DEAD_DESPAWN))
{
- hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ hostage->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ hostage->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
}
}
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
index 879ecdc4dc4..d0bb49544f0 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
@@ -71,10 +71,10 @@ class npc_zulaman_hostage : public CreatureScript
if (action == GOSSIP_ACTION_INFO_DEF + 1)
CloseGossipMenuFor(player);
- if (!me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
+ if (!me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
return true;
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
//uint8 progress = instance->GetData(DATA_CHESTLOOTED);
instance->SetData(DATA_CHESTLOOTED, 0);
@@ -198,7 +198,7 @@ class npc_harrison_jones : public CreatureScript
{
CloseGossipMenuFor(player);
me->SetFacingToObject(player);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_HARRISON_0);
_gongEvent = GONG_EVENT_1;
_gongTimer = 4000;
@@ -214,8 +214,8 @@ class npc_harrison_jones : public CreatureScript
me->SetEntry(NPC_HARRISON_JONES_2);
me->SetDisplayId(MODEL_HARRISON_JONES_2);
me->SetTarget(ObjectGuid::Empty);
- me->SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_DEAD);
- me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
+ me->SetStandState(UNIT_STAND_STATE_DEAD);
+ me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
instance->SetData(DATA_GONGEVENT, DONE);
}
}
@@ -237,7 +237,7 @@ class npc_harrison_jones : public CreatureScript
me->SetFacingTo(6.235659f);
Talk(SAY_HARRISON_1);
DoCast(me, SPELL_BANGING_THE_GONG);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_MACE));
+ me->SetVirtualItem(0, uint32(WEAPON_MACE));
me->SetSheath(SHEATH_STATE_MELEE);
_gongEvent = GONG_EVENT_3;
_gongTimer = 4000;
@@ -278,7 +278,7 @@ class npc_harrison_jones : public CreatureScript
_gongEvent = GONG_EVENT_6;
break;
case GONG_EVENT_6:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
Talk(SAY_HARRISON_3);
_gongTimer = 7000;
_gongEvent = GONG_EVENT_7;
@@ -291,7 +291,7 @@ class npc_harrison_jones : public CreatureScript
{
if (target->GetPositionX() > 120)
{
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_SPEAR));
+ target->SetVirtualItem(0, uint32(WEAPON_SPEAR));
target->SetImmuneToPC(true);
target->SetReactState(REACT_PASSIVE);
target->AI()->SetData(0, 1);
@@ -312,8 +312,8 @@ class npc_harrison_jones : public CreatureScript
}
case GONG_EVENT_8:
DoCast(me, SPELL_STEALTH);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(0));
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetVirtualItem(0, uint32(0));
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MovePath(HARRISON_MOVE_3, false);
_gongTimer = 1000;
_gongEvent = 0;
@@ -329,7 +329,7 @@ class npc_harrison_jones : public CreatureScript
_gongTimer = 6000;
break;
case GONG_EVENT_11:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
instance->SetData(DATA_GONGEVENT, NOT_STARTED);
_gongEvent = 0;
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index f6fb41230ec..02150827d45 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -108,8 +108,8 @@ struct boss_arlokk : public BossAI
me->ApplyStatPctModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, DamageDecrease); // hack
_Reset();
Initialize();
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER));
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER));
+ me->SetVirtualItem(0, uint32(WEAPON_DAGGER));
+ me->SetVirtualItem(1, uint32(WEAPON_DAGGER));
me->SetWalk(false);
me->GetMotionMaster()->MovePoint(0, PosMoveOnSpawn[0]);
}
@@ -228,8 +228,8 @@ struct boss_arlokk : public BossAI
case EVENT_TRANSFORM:
{
DoCast(me, SPELL_PANTHER_TRANSFORM); // SPELL_AURA_TRANSFORM
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP));
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(EQUIP_UNEQUIP));
+ me->SetVirtualItem(0, uint32(EQUIP_UNEQUIP));
+ me->SetVirtualItem(1, uint32(EQUIP_UNEQUIP));
/*
CreatureTemplate const* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
@@ -239,7 +239,7 @@ struct boss_arlokk : public BossAI
me->AttackStop();
ResetThreatList();
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
DoCast(me, SPELL_VANISH_VISUAL);
DoCast(me, SPELL_VANISH);
events.ScheduleEvent(EVENT_VANISH, 1s, 0, PHASE_ONE);
@@ -258,7 +258,7 @@ struct boss_arlokk : public BossAI
break;
case EVENT_VISIBLE:
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_UNINTERACTIBLE);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
AttackStart(target);
me->RemoveAura(SPELL_SUPER_INVIS);
@@ -276,8 +276,8 @@ struct boss_arlokk : public BossAI
{
me->RemoveAura(SPELL_PANTHER_TRANSFORM); // SPELL_AURA_TRANSFORM
DoCast(me, SPELL_VANISH_VISUAL);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER));
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER));
+ me->SetVirtualItem(0, uint32(WEAPON_DAGGER));
+ me->SetVirtualItem(1, uint32(WEAPON_DAGGER));
/*
CreatureTemplate const* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg));
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index 3ddb4e8360b..284fc8937a7 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -64,7 +64,7 @@ struct boss_renataki : public BossAI
me->InterruptSpell(CURRENT_GENERIC_SPELL);
SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
me->SetDisplayId(11686);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_invisible = true;
_invisibleTimer = urand(15000, 30000);
}
@@ -95,7 +95,7 @@ struct boss_renataki : public BossAI
me->InterruptSpell(CURRENT_GENERIC_SPELL);
me->SetDisplayId(15268);
SetEquipmentSlots(false, EQUIP_ID_MAIN_HAND, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_invisible = false;
_visibleTimer = 4000;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
index 30b0347095d..473de6c9cfa 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
@@ -129,7 +129,7 @@ struct boss_thekal : public BossAI
_Reset();
Initialize();
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
}
void JustDied(Unit* /*killer*/) override
@@ -301,7 +301,7 @@ struct boss_thekal : public BossAI
// Trigger phase change
_isChangingPhase = false;
DoCastSelf(SPELL_TIGER_FORM);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
me->ApplyStatPctModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, DamageIncrease);
ResetThreatList();
me->SetControlled(false, UNIT_STATE_ROOT);
@@ -401,7 +401,7 @@ struct npc_zealot_lorkhan : public ScriptedAI
{
_events.Reset();
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
@@ -499,7 +499,7 @@ struct npc_zealot_zath : public ScriptedAI
{
_events.Reset();
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
index 2e1b8db6887..fd1b09f4bf8 100644
--- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
@@ -141,7 +141,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
{
if (action == ACTION_START_QUEST)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
if (Creature* thalorien = me->SummonCreature(NPC_THALORIEN_DAWNSEEKER, thalorienSummon, TEMPSUMMON_CORPSE_DESPAWN))
_thalorienGUID = thalorien->GetGUID();
@@ -153,7 +153,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
void Reset() override
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_summons.DespawnAll();
_playerGUID.Clear();
_morlenGUID.Clear();
@@ -258,7 +258,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
{
thalorien->SetWalk(true);
thalorien->GetMotionMaster()->MovePoint(0, thalorienFight);
- thalorien->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+ thalorien->SetEmoteState(EMOTE_STATE_READY2H);
thalorien->SetHomePosition(thalorienFight);
}
@@ -320,7 +320,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
creature->GetEntry() == NPC_MORLEN_GOLDGRIP)
continue;
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ creature->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
if (Creature* thalorien = ObjectAccessor::GetCreature(*me, _thalorienGUID))
creature->AI()->AttackStart(thalorien);
}
@@ -334,7 +334,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
case EVENT_MORLEN_ATTACK:
if (Creature* morlen = ObjectAccessor::GetCreature(*me, _morlenGUID))
{
- morlen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
+ morlen->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
if (Creature* thalorien = ObjectAccessor::GetCreature(*me, _thalorienGUID))
morlen->AI()->AttackStart(thalorien);
}
@@ -374,7 +374,7 @@ struct npc_thalorien_dawnseeker : public ScriptedAI
thalorien->DespawnOrUnsummon(5s);
}
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
}
diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
index 1f990fcb29d..b06667b2ea9 100644
--- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
@@ -105,7 +105,7 @@ public:
_events.ScheduleEvent(EVENT_SET_QUESTGIVER_FLAG, 12s);
break;
case EVENT_SET_QUESTGIVER_FLAG:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
_events.ScheduleEvent(EVENT_STAND, 3s);
break;
case EVENT_STAND:
@@ -128,7 +128,7 @@ public:
me->SetFaction(FACTION_ENEMY);
me->SetImmuneToPC(false);
AttackStart(player);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
}
}
diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp
index 03a07e69e37..1ed0500eb40 100644
--- a/src/server/scripts/Events/hallows_end.cpp
+++ b/src/server/scripts/Events/hallows_end.cpp
@@ -140,16 +140,16 @@ class spell_hallow_end_trick : public SpellScript
switch (urand(0, 5))
{
case 1:
- spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
break;
case 2:
- spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
break;
case 3:
- spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
break;
case 4:
- spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
break;
case 5:
spellId = SPELL_SKELETON_COSTUME;
diff --git a/src/server/scripts/Events/operation_gnomeregan.cpp b/src/server/scripts/Events/operation_gnomeregan.cpp
index 656f7fc7dd4..99365f3faab 100644
--- a/src/server/scripts/Events/operation_gnomeregan.cpp
+++ b/src/server/scripts/Events/operation_gnomeregan.cpp
@@ -54,10 +54,10 @@ class spell_operation_gnomeregan_basic_orders_emote : public AuraScript
target->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
break;
case SPELL_TEST_DANCE:
- target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE);
+ target->SetEmoteState(EMOTE_STATE_DANCE);
break;
case SPELL_TEST_STOP_DANCE:
- target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ target->SetEmoteState(EMOTE_STATE_NONE);
break;
default:
return;
diff --git a/src/server/scripts/Events/zalazane_fall.cpp b/src/server/scripts/Events/zalazane_fall.cpp
index 1b0e2e856f9..cdebdca63d8 100644
--- a/src/server/scripts/Events/zalazane_fall.cpp
+++ b/src/server/scripts/Events/zalazane_fall.cpp
@@ -187,7 +187,7 @@ struct npc_tiger_matriarch : public ScriptedAI
if (HealthBelowPct(20))
{
damage = 0;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (Unit* vehSummoner = attacker->ToTempSummon()->GetSummonerUnit())
{
vehSummoner->AddAura(SPELL_SUMMON_ZENTABRA_TRIGGER, vehSummoner);
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index d84139c7511..2949d9ed40b 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -175,7 +175,7 @@ struct npc_morridune : public EscortAI
void Reset() override
{
Talk(SAY_MORRIDUNE_1);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Start(false);
}
@@ -186,7 +186,7 @@ struct npc_morridune : public EscortAI
case 4:
SetEscortPaused(true);
me->SetFacingTo(1.775791f);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_MORRIDUNE_2);
break;
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index abd39632f41..319d5b26823 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -128,7 +128,7 @@ public:
ArchimondeGUID = instance->GetGuidData(DATA_ARCHIMONDE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void JustEngagedWith(Unit* /*who*/) override { }
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 15bc6025bfb..3d9e1d8b687 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -405,7 +405,7 @@ void hyjalAI::Reset()
}
//Flags
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
//Reset Instance Data for trash count
if ((!instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == JAINA) || (instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == THRALL))
@@ -600,7 +600,7 @@ void hyjalAI::StartEvent(Player* player)
CheckTimer = 5000;
PlayerGUID = player->GetGUID();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
instance->DoUpdateWorldState(WORLD_STATE_WAVES, 0);
instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0);
@@ -632,7 +632,7 @@ void hyjalAI::Retreat()
Creature* JainaDummy = me->SummonCreature(JAINA, JainaDummySpawn[0][0], JainaDummySpawn[0][1], JainaDummySpawn[0][2], JainaDummySpawn[0][3], TEMPSUMMON_TIMED_DESPAWN, 1min);
if (JainaDummy)
{
- JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ JainaDummy->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
ENSURE_AI(hyjalAI, JainaDummy->AI())->IsDummy = true;
DummyGuid = JainaDummy->GetGUID();
}
@@ -642,7 +642,7 @@ void hyjalAI::Retreat()
}
SpawnVeins();
Overrun = true;
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started
}
void hyjalAI::SpawnVeins()
@@ -836,7 +836,7 @@ void hyjalAI::UpdateAI(uint32 diff)
}
EventBegun = false;
CheckTimer = 0;
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
BossGUID[i].Clear();
instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it
}
@@ -999,7 +999,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
{
(*itr)->CastSpell(*itr, SPELL_TELEPORT_VISUAL, true);
(*itr)->SetFaction(FACTION_FRIENDLY);//make them friendly so mobs won't attack them
- (*itr)->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ (*itr)->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
DoCast(me, SPELL_TELEPORT_VISUAL);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 669bf59583d..7025555e253 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -404,7 +404,7 @@ void hyjal_trashAI::JustDied(Unit* /*killer*/)
instance->SetData(DATA_TRASH, 0);//signal trash is dead
if ((instance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !me->isWorldBoss()) || (damageTaken < me->GetMaxHealth()/4 && me->isWorldBoss()))
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);//no loot
}
class npc_giant_infernal : public CreatureScript
@@ -420,8 +420,8 @@ public:
meteor = false;//call once!
CanMove = false;
Delay = rand32() % 30000;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisplayId(MODEL_INVIS);
go = false;
Initialize();
@@ -486,8 +486,8 @@ public:
} else if (!CanMove){
if (spawnTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID));
CanMove = true;
if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))
@@ -690,7 +690,7 @@ public:
}
if (waypointId == LastOverronPos && IsOverrun)
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK_UNARMED);
+ me->SetEmoteState(EMOTE_ONESHOT_ATTACK_UNARMED);
if ((faction == 0 && LastOverronPos == 17) || (faction == 1 && LastOverronPos == 21))
{
me->DespawnOrUnsummon();
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index 7778be61390..49e8d584bb8 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -616,7 +616,7 @@ struct npc_martha_goslin : public CreatureScript
InterruptTimer = 12000;
SplineChainMovementGenerator::GetResumeInfo(ResumeInfo, me);
me->GetMotionMaster()->Clear();
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
}
void MovementInform(uint32 type, uint32 id) override
@@ -626,12 +626,12 @@ struct npc_martha_goslin : public CreatureScript
switch (id)
{
case MOVEID_EVENT1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
me->SetFacingTo(marthaIdleOrientation1, true);
Events.ScheduleEvent(EVENT_MARTHA_IDLE2, Seconds(9), Seconds(15));
break;
case MOVEID_EVENT2:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
me->SetFacingTo(marthaIdleOrientation2, true);
Events.ScheduleEvent(EVENT_MARTHA_IDLE1, Seconds(9), Seconds(15));
break;
@@ -668,11 +668,11 @@ struct npc_martha_goslin : public CreatureScript
switch (eventId)
{
case EVENT_MARTHA_IDLE1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MoveAlongSplineChain(MOVEID_EVENT1, CHAIN_MARTHA_IDLE1, true);
break;
case EVENT_MARTHA_IDLE2:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->GetMotionMaster()->MoveAlongSplineChain(MOVEID_EVENT2, CHAIN_MARTHA_IDLE2, true);
break;
default:
@@ -683,7 +683,7 @@ struct npc_martha_goslin : public CreatureScript
void JustAppeared() override
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
Events.RescheduleEvent(EVENT_MARTHA_IDLE2, Seconds(5), Seconds(10));
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
index db01f05052b..fb1cac8b123 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
@@ -576,9 +576,9 @@ public:
// Adjust gossip flag based on whether we have a gossip menu or not
if (target.HasGossip)
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
else
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
TC_LOG_TRACE("scripts.cos", "npc_arthas_stratholmeAI::AdvanceToState: has snapback for this state, distance = %f", target.SnapbackPosition->GetExactDist(me));
// Snapback handling - if we're too far from where we're supposed to be, teleport there
@@ -1074,7 +1074,7 @@ public:
DoCast(citizen, SPELL_CRUSADER_STRIKE, TRIGGERED_IGNORE_SET_FACING);
if (Creature* resident = me->FindNearestCreature(NPC_RESIDENT, 100.0f, true))
{
- resident->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
+ resident->SetEmoteState(EMOTE_STATE_COWER);
resident->AI()->Talk(RP2_LINE_RESIDENT1, ObjectAccessor::GetUnit(*me, _eventStarterGuid));
}
break;
@@ -1465,7 +1465,7 @@ public:
case RP5_EVENT_CHROMIE_SPAWN:
if (Creature* chromie = instance->instance->SummonCreature(NPC_CHROMIE_3, ArthasPositions[RP5_CHROMIE_SPAWN]))
{
- chromie->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ chromie->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
Movement::PointsArray path(ChromieSplinePos, ChromieSplinePos + chromiePathSize);
Movement::MoveSplineInit init(chromie);
init.SetFly();
@@ -1476,14 +1476,14 @@ public:
break;
case RP5_EVENT_CHROMIE_LAND:
if (Creature* chromie = me->FindNearestCreature(NPC_CHROMIE_3, 100.0f, true))
- chromie->SetByteValue(UNIT_FIELD_BYTES_1, 3, 0);
+ chromie->SetAnimTier(AnimTier::Ground);
break;
case RP5_EVENT_CHROMIE_TRANSFORM:
if (Creature* chromie = me->FindNearestCreature(NPC_CHROMIE_3, 100.0f, true))
{
chromie->CastSpell(chromie, SPELL_CHROMIE_3_TRANSFORM);
chromie->AI()->Talk(RP5_LINE_CHROMIE0);
- chromie->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ chromie->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
}
break;
default:
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index f6cc956b256..d787b6e0d23 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -227,12 +227,8 @@ public:
break;
case 9:
Talk(SAY_TH_ARMORY);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THRALL_WEAPON_ITEM);
- //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
- //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, THRALL_SHIELD_ITEM);
- //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
- //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
+ me->SetVirtualItem(0, THRALL_WEAPON_ITEM);
+ me->SetVirtualItem(1, THRALL_SHIELD_ITEM);
break;
case 10:
me->SetDisplayId(THRALL_MODEL_EQUIPPED);
@@ -265,7 +261,7 @@ public:
break;
case 30:
SetEscortPaused(true);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetRun(false);
break;
case 31:
@@ -289,7 +285,7 @@ public:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
//make horsie run off
SetEscortPaused(true);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
instance->SetData(TYPE_THRALL_PART2, DONE);
SetRun();
break;
@@ -387,8 +383,8 @@ public:
{
DoUnmount();
HadMount = false;
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
+ me->SetVirtualItem(0, 0);
+ me->SetVirtualItem(1, 0);
me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
if (HasEscortState(STATE_ESCORT_ESCORTING))
@@ -398,7 +394,7 @@ public:
}
void StartWP()
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetEscortPaused(false);
}
void DoMount()
diff --git a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
index 0e64baa3a11..36fd1c605d7 100644
--- a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
+++ b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
@@ -91,7 +91,7 @@ public:
// we make Immolthar non attackable, otherwise players with pets can pull him out of the forcefield
// TODO: this change isnt correct but since of today (13.09.2020) mmaps dont support doors
if (GetBossState(DATA_FORCEFIELD) != DONE)
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
break;
default:
break;
@@ -262,7 +262,7 @@ public:
ffield->SetGoState(GO_STATE_ACTIVE);
// remove previously set non attackable flag
if (Creature* immo = instance->GetCreature(_immoGUID))
- immo->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ immo->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
index 53fe8fd3ad2..ac6d038bfa9 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
@@ -83,7 +83,7 @@ public:
{
//Become visible again
me->SetFaction(FACTION_MONSTER);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
//Noxxion model
me->SetDisplayId(11172);
Invisible = false;
@@ -123,7 +123,7 @@ public:
//me->m_canMove = true;
me->InterruptNonMeleeSpells(false);
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
// Invisible Model
me->SetDisplayId(11686);
SummonAdds(me->GetVictim());
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index f88160a72e3..ccf78432e41 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -105,7 +105,7 @@ public:
channeling = false;
eventProgress = 0;
spawnerCount = 0;
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
}
}
@@ -134,7 +134,7 @@ public:
{
eventInProgress = true;
Talk(SAY_QUEST_ACCEPTED);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
me->GetMotionMaster()->MovePath(PATH_ESCORT, false);
}
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index e2fb8652be2..f42ca486a00 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -100,7 +100,7 @@ public:
break;
case 45:
Talk(SAY_WIN, player);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
player->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me);
break;
case 46:
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index f20fabca27e..971df3b696e 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -86,7 +86,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
}
@@ -178,7 +178,7 @@ public:
{
instance->SetData(DATA_VEM_DEATH, 0);
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
}
@@ -263,7 +263,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
for (uint8 i = 0; i < 10; ++i)
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index fbd8edec371..639011f9ff9 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -209,7 +209,7 @@ public:
//Reset flags
me->RemoveAurasDueToSpell(SPELL_RED_COLORATION);
me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetVisible(true);
//Reset Phase
@@ -420,7 +420,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_RED_COLORATION);
//Reset to normal emote state and prevent select and attack
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
//Remove Target field
me->SetTarget(ObjectGuid::Empty);
@@ -523,7 +523,7 @@ public:
//Reset flags
me->RemoveAurasDueToSpell(SPELL_TRANSFORM);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetVisible(false);
instance->SetData(DATA_CTHUN_PHASE, PHASE_NOT_STARTED);
@@ -632,7 +632,7 @@ public:
me->SetFullHealth();
me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
//Emerging phase
//AttackStart(ObjectAccessor::GetUnit(*me, HoldpPlayer));
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
index a0621a3670a..baa45489f71 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
@@ -112,7 +112,7 @@ public:
{
//Cast
me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetFaction(FACTION_FRIENDLY);
DoCast(me, SPELL_DIRTMOUND_PASSIVE);
@@ -132,7 +132,7 @@ public:
//Back_Timer
if (Submerged && Back_Timer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetFaction(FACTION_MONSTER);
DoCastVictim(SPELL_GROUND_RUPTURE);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index b6fc641f95c..e13337d64dc 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -124,7 +124,7 @@ struct boss_twinemperorsAI : public BossAI
if (ohealth <= 0)
{
pOtherBoss->setDeathState(JUST_DIED);
- pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
}
}
}
@@ -136,7 +136,7 @@ struct boss_twinemperorsAI : public BossAI
{
pOtherBoss->SetHealth(0);
pOtherBoss->setDeathState(JUST_DIED);
- pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
ENSURE_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true;
}
if (!DontYellWhenDead) // I hope AI is not threaded
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index f281f3bb894..d7e72ff0751 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -100,7 +100,7 @@ public:
switch (waypointId)
{
case 0:
- me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_ACTIVE);
break;
diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp
index 74a30497e9a..d75840e81fc 100644
--- a/src/server/scripts/Kalimdor/zone_azshara.cpp
+++ b/src/server/scripts/Kalimdor/zone_azshara.cpp
@@ -267,7 +267,7 @@ public:
if (me->IsWithinDist(player, 10) && me->GetPositionX() > player->GetPositionX() && !Reached)
{
Talk(SAY_RIZZLE_FINAL);
- me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetFaction(FACTION_FRIENDLY);
me->GetMotionMaster()->MoveIdle();
me->RemoveAurasDueToSpell(SPELL_PERIODIC_DEPTH_CHARGE);
@@ -337,7 +337,7 @@ public:
{
me->SetHover(true);
me->SetSwim(true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Initialize();
}
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 0af9d3be92c..1e874a9644a 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -91,8 +91,8 @@ public:
DoCast(me, SPELL_IRRIDATION, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ me->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
me->SetHealth(me->CountPctFromMaxHealth(10));
me->SetStandState(UNIT_STAND_STATE_SLEEP);
}
@@ -115,7 +115,7 @@ public:
{
if (spellInfo->SpellFamilyFlags[2] & 0x080000000)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ me->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
me->SetStandState(UNIT_STAND_STATE_STAND);
DoCast(me, SPELL_STUNNED, true);
@@ -202,7 +202,7 @@ public:
{
Initialize();
NormFaction = creature->GetFaction();
- NpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS);
+ NpcFlags = creature->GetNpcFlags();
}
void Initialize()
@@ -221,7 +221,7 @@ public:
Initialize();
me->SetFaction(NormFaction);
- me->SetUInt32Value(UNIT_NPC_FLAGS, NpcFlags);
+ me->ReplaceAllNpcFlags(NpcFlags);
}
void JustEngagedWith(Unit* who) override
@@ -265,7 +265,7 @@ public:
private:
uint32 NormFaction;
- uint32 NpcFlags;
+ NPCFlags NpcFlags;
uint32 DynamiteTimer;
uint32 EmoteTimer;
bool IsTreeEvent;
@@ -292,7 +292,7 @@ public:
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ me->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
me->SetHealth(me->CountPctFromMaxHealth(15));
switch (urand(0, 1))
{
@@ -412,7 +412,7 @@ public:
_events.ScheduleEvent(EVENT_STAND, 2s);
break;
case EVENT_STAND: // Remove kneel standstate. Using a separate delayed event because it causes unwanted delay before starting waypoint movement.
- me->SetByteValue(UNIT_FIELD_BYTES_1, 0, 0);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
break;
case EVENT_TALK_END:
if (Player* player = ObjectAccessor::GetPlayer(*me, _player))
@@ -509,7 +509,7 @@ public:
{
SparkGUID = Spark->GetGUID();
Spark->setActive(true);
- Spark->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ Spark->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
SayTimer = 8000;
}
diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp
index 536d3508358..a555fa15079 100644
--- a/src/server/scripts/Kalimdor/zone_desolace.cpp
+++ b/src/server/scripts/Kalimdor/zone_desolace.cpp
@@ -97,12 +97,12 @@ public:
me->GetMotionMaster()->MoveFollow(unitCaster, PET_FOLLOW_DIST, me->GetFollowAngle());
me->setActive(true);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
}
else if (spellInfo->Id == SPELL_KODO_KOMBO_GOSSIP)
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveIdle();
diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp
index 43c92e36920..b58dda79e99 100644
--- a/src/server/scripts/Kalimdor/zone_moonglade.cpp
+++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp
@@ -198,7 +198,7 @@ public:
PlayerGUID = player->GetGUID();
Start(true, false, PlayerGUID);
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
return;
}
@@ -252,12 +252,12 @@ public:
switch (Step)
{
case 0:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE);
EventTimer = 5000;
Step = 1;
break;
case 1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
// Needs text
EventOnWait = false;
break;
@@ -267,12 +267,12 @@ public:
switch (Step)
{
case 0:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE);
EventTimer = 5000;
Step = 1;
break;
case 1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
EventOnWait = false;
break;
}
@@ -311,12 +311,12 @@ public:
switch (Step)
{
case 0:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE);
EventTimer = 5000;
Step = 1;
break;
case 1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
EventOnWait = false;
break;
}
@@ -338,14 +338,14 @@ public:
switch (Step)
{
case 0:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
+ me->SetEmoteState(EMOTE_ONESHOT_BOW);
// Needs text
player->CompleteQuest(10965);
EventTimer = 1500;
Step = 1;
break;
case 1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
EventTimer = 3000;
Step = 2;
break;
diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
index 796d04b6480..4c40bf54350 100644
--- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
@@ -645,7 +645,7 @@ public:
if (Creature* stormwindPortal = me->SummonCreature(NPC_PORTAL_STORMWIND, PortalSpawnPosition))
{
- stormwindPortal->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ stormwindPortal->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
stormwindPortalGUID = stormwindPortal->GetGUID();
}
@@ -654,7 +654,7 @@ public:
if (Creature* guards = ObjectAccessor::GetCreature(*me, guardsGUIDs[i]))
{
guards->SetWalk(false);
- guards->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+ guards->SetEmoteState(EMOTE_STATE_READY2H);
guards->GetMotionMaster()->MovePoint(1, GuardsMovePosition[i]);
}
}
@@ -688,7 +688,7 @@ public:
if (Creature* guard = ObjectAccessor::GetCreature(*me, guardsGUIDs[i]))
{
guard->GetMotionMaster()->MoveTargetedHome();
- guard->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ guard->SetEmoteState(EMOTE_STATE_NONE);
}
}
events.ScheduleEvent(EVENT_HERALD_SCENE2, 3s);
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 9eba0cf104d..916b1b98756 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -363,7 +363,7 @@ public:
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void HandleAnimation()
@@ -847,7 +847,7 @@ public:
if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer))
{
if (spawn->GetEntry() == NPC_KALDOREI_INFANTRY)
- spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15427 + rand32() % 4);
+ spawn->SetDisplayId(15427 + rand32() % 4);
if (i >= 30) WaveCount = 1;
if (i >= 33) WaveCount = 2;
if (i >= 45) WaveCount = 3;
@@ -985,25 +985,25 @@ public:
if (Merithra)
{
- Merithra->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
- Merithra->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID, MERITHRA_NIGHT_ELF_FORM);
+ Merithra->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
+ Merithra->SetStandState(UNIT_STAND_STATE_STAND);
+ Merithra->SetDisplayId(MERITHRA_NIGHT_ELF_FORM);
Merithra->SetFaction(FACTION_FRIENDLY);
}
if (Caelestrasz)
{
- Caelestrasz->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
- Caelestrasz->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID, CAELESTRASZ_NIGHT_ELF_FORM);
+ Caelestrasz->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
+ Caelestrasz->SetStandState(UNIT_STAND_STATE_STAND);
+ Caelestrasz->SetDisplayId(CAELESTRASZ_NIGHT_ELF_FORM);
Caelestrasz->SetFaction(FACTION_FRIENDLY);
}
if (Arygos)
{
- Arygos->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
- Arygos->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID, ARYGOS_GNOME_FORM);
+ Arygos->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
+ Arygos->SetStandState(UNIT_STAND_STATE_STAND);
+ Arygos->SetDisplayId(ARYGOS_GNOME_FORM);
Arygos->SetFaction(FACTION_FRIENDLY);
}
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index 65e372b0ec5..3874e7c688c 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -382,8 +382,8 @@ public:
if (!creature)
continue;
creature->SetFaction(35);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
AffrayChallenger[i] = creature->GetGUID();
}
@@ -419,8 +419,8 @@ public:
Creature* creature = ObjectAccessor::GetCreature(*me, AffrayChallenger[Wave]);
if (creature && (creature->IsAlive()))
{
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
creature->SetFaction(14);
creature->AI()->AttackStart(warrior);
@@ -451,8 +451,8 @@ public:
}
else // Makes BIG WILL attackable.
{
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
creature->SetFaction(14);
creature->AI()->AttackStart(warrior);
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
index fa4363a42e6..8618b9e72a3 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
@@ -152,7 +152,7 @@ struct boss_volazj : public BossAI
ResetPlayersPhaseMask();
// Cleanup
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_STUNNED);
}
@@ -192,7 +192,7 @@ struct boss_volazj : public BossAI
void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
damage = 0;
if ((GetHealthPct(0) >= 66 && GetHealthPct(damage) < 66) || (GetHealthPct(0) >= 33 && GetHealthPct(damage) < 33))
@@ -223,7 +223,7 @@ struct boss_volazj : public BossAI
Talk(SAY_INSANITY);
DoCastSelf(SPELL_WHISPER_INSANITY, true);
// Unattackable
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_STUNNED);
}
// phase mask
@@ -344,7 +344,7 @@ struct boss_volazj : public BossAI
return;
_insanityHandled = 0;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_STUNNED);
me->RemoveAurasDueToSpell(INSANITY_VISUAL);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
index 301e4e1cdcb..8f8202d30c4 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -279,7 +279,7 @@ struct boss_jedoga_shadowseeker : public BossAI
switch (pointId)
{
case POINT_GROUND:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
events.ScheduleEvent(EVENT_CYCLONE_STRIKE, 3s);
@@ -329,7 +329,7 @@ struct boss_jedoga_shadowseeker : public BossAI
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->InterruptNonMeleeSpells(true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->GetMotionMaster()->MovePoint(POINT_PHASE_TWO, JedogaGroundPosition);
break;
case EVENT_FLY_DELAY:
@@ -416,7 +416,7 @@ struct npc_twilight_volunteer : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL_VOLUNTEER);
Talk(SAY_CHOSEN);
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_SACRIFICE, JedogaSacrificePosition);
}
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 5b2b2051729..dc888672538 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -273,7 +273,7 @@ struct boss_prince_taldaram : public BossAI
void RemovePrison()
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
summons.DespawnEntry(NPC_JEDOGA_CONTROLLER);
me->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL);
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), PrinceTaldaramGroundPositionZ, me->GetOrientation());
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
index b7303f8ecd7..c8100dfc797 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
@@ -117,7 +117,7 @@ struct boss_anub_arak : public BossAI
void Reset() override
{
BossAI::Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_GOTTA_GO_START_EVENT);
_nextSubmerge = 75;
_petCount = 0;
@@ -328,7 +328,7 @@ struct boss_anub_arak : public BossAI
{
me->RemoveAurasDueToSpell(SPELL_SUBMERGE);
me->RemoveAurasDueToSpell(SPELL_IMPALE_AURA);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_EMERGE);
events.SetPhase(PHASE_EMERGE);
events.ScheduleEvent(EVENT_POUND, 13s, 18s, 0, PHASE_EMERGE);
@@ -358,7 +358,7 @@ struct boss_anub_arak : public BossAI
{
if (spellInfo->Id == SPELL_SUBMERGE)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAurasDueToSpell(SPELL_LEECHING_SWARM);
DoCastSelf(SPELL_IMPALE_AURA, true);
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index 0e3ca170eb0..63490558494 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -273,8 +273,8 @@ struct boss_hadronox : public BossAI
{
BossAI::InitializeAI();
me->SetReactState(REACT_AGGRESSIVE);
- me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f);
- me->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f);
+ me->SetBoundingRadius(9.0f);
+ me->SetCombatReach(9.0f);
_enteredCombat = false;
_doorsWebbed = false;
_lastPlayerCombatState = false;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index 2dba7e316a9..89083426350 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -219,8 +219,8 @@ struct boss_sartharion : public BossAI
tenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f);
if (tenebron->IsAlive())
{
- if (tenebron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- tenebron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (tenebron->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ tenebron->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
tenebron->GetMotionMaster()->MoveTargetedHome();
}
else
@@ -239,8 +239,8 @@ struct boss_sartharion : public BossAI
shadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f);
if (shadron->IsAlive())
{
- if (shadron->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- shadron->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (shadron->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ shadron->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
shadron->GetMotionMaster()->MoveTargetedHome();
}
else
@@ -259,8 +259,8 @@ struct boss_sartharion : public BossAI
vesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f);
if (vesperon->IsAlive())
{
- if (vesperon->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- vesperon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (vesperon->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ vesperon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
vesperon->GetMotionMaster()->MoveTargetedHome();
}
else
@@ -296,8 +296,8 @@ struct boss_sartharion : public BossAI
}
fetchTene->GetMotionMaster()->MovePoint(POINT_ID_INIT, TenebronPositions[0]);
- if (!fetchTene->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- fetchTene->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (!fetchTene->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ fetchTene->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
@@ -314,8 +314,8 @@ struct boss_sartharion : public BossAI
}
fetchShad->GetMotionMaster()->MovePoint(POINT_ID_INIT, ShadronPositions[0]);
- if (!fetchShad->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- fetchShad->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (!fetchShad->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ fetchShad->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
@@ -332,8 +332,8 @@ struct boss_sartharion : public BossAI
}
fetchVesp->GetMotionMaster()->MovePoint(POINT_ID_INIT, VesperonPositions[0]);
- if (!fetchVesp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- fetchVesp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (!fetchVesp->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ fetchVesp->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
@@ -349,8 +349,8 @@ struct boss_sartharion : public BossAI
{
temp->SetWalk(false);
- if (temp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (temp->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
uint8 textId = 0;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
index edca5e597d0..fc44875bf1d 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
@@ -177,8 +177,8 @@ struct dummy_dragonAI : public ScriptedAI
void Reset() override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
events.Reset();
Initialize();
@@ -805,7 +805,7 @@ struct npc_flame_tsunami : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
events.ScheduleEvent(EVENT_TSUNAMI_TIMER, 100ms);
events.ScheduleEvent(EVENT_TSUNAMI_BUFF, 1s);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
void UpdateAI(uint32 diff) override
@@ -851,7 +851,7 @@ struct npc_twilight_fissure : public ScriptedAI
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->AddAura(46265, me); // Wrong, can't find proper visual
me->AddAura(69422, me);
events.ScheduleEvent(EVENT_VOID_BLAST, 5s);
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
index f7d2c400df9..43605254fd8 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -73,7 +73,7 @@ struct boss_general_zarithrian : public BossAI
_Reset();
if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index dd6d9b8d203..22c59cfeb48 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -289,7 +289,7 @@ class boss_halion : public CreatureScript
Talk(SAY_PHASE_TWO);
me->CastStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_TWILIGHT_PHASING);
if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER))
@@ -416,7 +416,7 @@ class boss_twilight_halion : public CreatureScript
me->SetHealth(halion->GetHealth());
me->SetPhaseMask(0x20, true);
me->SetReactState(REACT_DEFENSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ me->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
events.ScheduleEvent(EVENT_TAIL_LASH, 12s);
events.ScheduleEvent(EVENT_SOUL_CONSUMPTION, 15s);
}
@@ -671,7 +671,7 @@ class npc_halion_controller : public CreatureScript
continue;
halion->RemoveAurasDueToSpell(SPELL_TWILIGHT_PHASING);
- halion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ halion->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
// Summon Twilight portals
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index cdeb50b7fff..c1be17907d8 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -176,7 +176,7 @@ class instance_ruby_sanctum : public InstanceMapScript
if (GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
if (Creature* zarithrian = GetCreature(DATA_GENERAL_ZARITHRIAN))
{
- zarithrian->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ zarithrian->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
zarithrian->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
index 33dd1372999..e66831280f2 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp
@@ -66,7 +66,7 @@ struct npc_xerestrasza : public ScriptedAI
void Reset() override
{
_events.Reset();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
}
void DoAction(int32 action) override
@@ -126,7 +126,7 @@ struct npc_xerestrasza : public ScriptedAI
Talk(SAY_XERESTRASZA_EVENT_6);
break;
case EVENT_XERESTRASZA_EVENT_7:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
Talk(SAY_XERESTRASZA_EVENT_7);
me->setActive(false);
me->SetFarVisible(false);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index 218f3d55a0f..dbbdb2eb37a 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -163,7 +163,7 @@ public:
Initialize();
instance = creature->GetInstanceScript();
creature->SetReactState(REACT_PASSIVE);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void Initialize()
@@ -274,7 +274,7 @@ public:
instance = creature->GetInstanceScript();
creature->SetReactState(REACT_PASSIVE);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->RestoreFaction();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
index 17e6c4598aa..2a32a48fcfb 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
@@ -110,7 +110,7 @@ void AggroAllPlayers(Creature* temp)
if (player->IsAlive())
{
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
temp->SetImmuneToPC(true);
temp->SetReactState(REACT_AGGRESSIVE);
temp->EngageWithTarget(player);
@@ -328,7 +328,7 @@ public:
me->SetReactState(REACT_PASSIVE);
// THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
}
@@ -466,7 +466,7 @@ public:
me->SetReactState(REACT_PASSIVE);
// THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
}
@@ -610,7 +610,7 @@ public:
me->SetReactState(REACT_PASSIVE);
// THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
}
@@ -762,7 +762,7 @@ public:
me->SetReactState(REACT_PASSIVE);
// THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
}
@@ -923,7 +923,7 @@ public:
me->SetReactState(REACT_PASSIVE);
// THIS IS A HACK, SHOULD BE REMOVED WHEN THE EVENT IS FULL SCRIPTED
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
index df582dfa0a4..8a19f8d8d1f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
@@ -171,7 +171,7 @@ public:
if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID))
{
pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
- pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_CHAMPIONS_LOOT_H : GO_CHAMPIONS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h);
}
}
@@ -183,7 +183,7 @@ public:
if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID))
{
pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
- pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_EADRIC_LOOT_H : GO_EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h);
}
}
@@ -194,7 +194,7 @@ public:
if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID))
{
pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
- pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ pAnnouncer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
pAnnouncer->SummonGameObject(instance->IsHeroic() ? GO_PALETRESS_LOOT_H : GO_PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, QuaternionData(), 25h);
}
}
@@ -222,7 +222,7 @@ public:
if (Creature* pBoss = instance->GetCreature(uiArgentChampionGUID))
{
pBoss->GetMotionMaster()->MovePoint(0, 746.88f, 618.74f, 411.06f);
- pBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ pBoss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
pBoss->SetReactState(REACT_AGGRESSIVE);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
index c83674848a9..b34e27a9c7d 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp
@@ -92,8 +92,8 @@ public:
uiTimer = 0;
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetGrandChampionsForEncounter();
SetArgentChampion();
@@ -351,7 +351,7 @@ public:
void StartEncounter()
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
if (instance->GetBossState(BOSS_BLACK_KNIGHT) == NOT_STARTED)
{
@@ -387,7 +387,7 @@ public:
if (player->IsAlive())
{
temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ temp->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
temp->SetReactState(REACT_AGGRESSIVE);
AddThreat(player, 0.0f, temp);
}
@@ -431,7 +431,7 @@ public:
{
if (instance->GetBossState(BOSS_GRAND_CHAMPIONS) == NOT_STARTED)
{
- summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
summon->SetReactState(REACT_PASSIVE);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index e5d4389b3aa..15b30d81441 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -189,7 +189,7 @@ struct boss_anubarak_trial : public BossAI
events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, 20s);
Initialize();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
// clean up spawned Frost Spheres
std::list<Creature*> FrostSphereList;
me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f);
@@ -269,7 +269,7 @@ struct boss_anubarak_trial : public BossAI
{
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
// Despawn Scarab Swarms neutral
EntryCheckPredicate pred(NPC_SCARAB);
@@ -332,7 +332,7 @@ struct boss_anubarak_trial : public BossAI
{
DoCast(me, SPELL_SUBMERGE_ANUBARAK);
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
Talk(EMOTE_BURROWER);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_PURSUING_SPIKE, 2s, 0, PHASE_SUBMERGED);
@@ -368,7 +368,7 @@ struct boss_anubarak_trial : public BossAI
DoCast(SPELL_SPIKE_TELE);
summons.DespawnEntry(NPC_SPIKE);
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
DoCast(me, SPELL_EMERGE_ANUBARAK);
Talk(EMOTE_EMERGE);
events.SetPhase(PHASE_MELEE);
@@ -557,14 +557,14 @@ struct npc_nerubian_burrower : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_EFFECT);
DoCast(me, SPELL_EMERGE_EFFECT);
DoCast(me, SPELL_AWAKENED);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
else
{
if (!me->HasAura(SPELL_PERMAFROST_HELPER))
{
DoCast(me, SPELL_SUBMERGE_EFFECT);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCast(me, SPELL_PERSISTENT_DIRT, true);
}
}
@@ -605,7 +605,7 @@ struct npc_frost_sphere : public ScriptedAI
{
// we are close to the ground
me->GetMotionMaster()->MoveIdle();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAurasDueToSpell(SPELL_FROST_SPHERE);
DoCast(SPELL_PERMAFROST_MODEL);
DoCast(SPELL_PERMAFROST);
@@ -615,7 +615,7 @@ struct npc_frost_sphere : public ScriptedAI
{
// we are in air
me->GetMotionMaster()->MoveIdle();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
//At hit the ground
me->HandleEmoteCommand(EMOTE_ONESHOT_FLYDEATH);
me->GetMotionMaster()->MoveFall(POINT_FALL_GROUND);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index eea736e30d7..b9a80933aa0 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -478,7 +478,7 @@ struct boss_toc_champion_controller : public BossAI
{
summons.Summon(champion);
champion->SetReactState(REACT_PASSIVE);
- champion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ champion->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
champion->SetImmuneToPC(false);
if (playerTeam == ALLIANCE)
{
@@ -510,7 +510,7 @@ struct boss_toc_champion_controller : public BossAI
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
{
summon->SetReactState(REACT_AGGRESSIVE);
- summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
summon->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 9ff2dedfea3..4a09f73bae2 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -324,7 +324,7 @@ struct npc_infernal_volcano : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
DoCastSelf(SPELL_INFERNAL_ERUPTION_EFFECT, true);
if (IsHeroic())
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
};
@@ -386,7 +386,7 @@ struct npc_nether_portal : public ScriptedAI
me->SetReactState(REACT_PASSIVE);
DoCastSelf(SPELL_NETHER_PORTAL_EFFECT, true);
if (IsHeroic())
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
};
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index fa8d0445df3..005f3db756b 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -380,7 +380,7 @@ struct boss_gormok : public boss_northrend_beastsAI
if (Unit* snobold = me->GetVehicleKit()->GetPassenger(i))
{
snobold->ExitVehicle();
- snobold->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ snobold->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
snobold->GetAI()->DoAction(ACTION_DISABLE_FIRE_BOMB);
snobold->CastSpell(me, SPELL_JUMP_TO_HAND, true);
break;
@@ -484,7 +484,7 @@ struct npc_snobold_vassal : public ScriptedAI
}
else
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
_events.CancelEvent(EVENT_CHECK_MOUNT);
_events.CancelEvent(EVENT_FIRE_BOMB);
me->AttackStop();
@@ -743,7 +743,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
DoCastSelf(SPELL_GROUND_VISUAL_0, true);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
else
{
@@ -755,7 +755,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
events.SetPhase(PHASE_SUBMERGED);
me->SetControlled(false, UNIT_STATE_ROOT);
events.ScheduleEvent(EVENT_EMERGE, 6s, 0, PHASE_SUBMERGED);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ() + me->GetCollisionHeight());
}
@@ -768,7 +768,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0);
DoCastSelf(SPELL_EMERGE);
DoCastAOE(SPELL_HATE_TO_ZERO, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
AttackStart(target);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index b58f57c29ac..a16ba46f84d 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -241,8 +241,8 @@ struct boss_twin_baseAI : public BossAI
{
if (!pSister->IsAlive())
{
- me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- pSister->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
+ pSister->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
events.Reset();
summons.DespawnAll();
HandleRemoveAuras();
@@ -250,7 +250,7 @@ struct boss_twin_baseAI : public BossAI
}
else
{
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
instance->SetBossState(DATA_TWIN_VALKIRIES, SPECIAL);
}
}
@@ -555,7 +555,7 @@ struct npc_unleashed_ballAI : public ScriptedAI
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_PASSIVE);
me->SetDisableGravity(true);
me->SetCanFly(true);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index af5e59a7184..ffc8272bbf1 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -233,7 +233,7 @@ struct npc_barrett_toc : public ScriptedAI
{
if (Creature* fordring = _instance->GetCreature(DATA_FORDRING))
fordring->AI()->DoAction(action);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->GetMotionMaster()->MoveAlongSplineChain(POINT_BARRETT_DESPAWN, SPLINE_INITIAL_MOVEMENT, false);
}
@@ -337,7 +337,7 @@ struct boss_lich_king_toc : public ScriptedAI
_instance->SetBossState(DATA_LICH_KING, DONE);
break;
case EVENT_EMOTE_TALK:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
+ me->SetEmoteState(EMOTE_STATE_TALK);
me->GetMap()->SetZoneWeather(AREA_TRIAL_OF_THE_CRUSADER, WEATHER_STATE_FOG, 0.0f);
_events.ScheduleEvent(EVENT_EMOTE_EXCLAMATION, 10s);
break;
@@ -728,10 +728,10 @@ struct npc_fizzlebang_toc : public ScriptedAI
fordring->AI()->DoAction(ACTION_KILL_JARAXXUS);
break;
case EVENT_EMOTE_TALK:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
+ me->SetEmoteState(EMOTE_STATE_TALK);
break;
case EVENT_REMOVE_EMOTE_TALK:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
break;
default:
break;
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
index e3b510eea81..684982ff1f4 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp
@@ -198,15 +198,15 @@ private:
_bubbled = state;
if (!state)
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (me->HasUnitState(UNIT_STATE_CASTING))
me->CastStop();
}
else
{
- if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
DoCast(SPELL_ARCANE_FIELD);
}
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
index bbcebee96c4..30d3707a80f 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
@@ -82,7 +82,7 @@ struct npc_sylvanas_fos : public ScriptedAI
{
Initialize();
instance = me->GetInstanceScript();
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void Initialize()
@@ -107,7 +107,7 @@ struct npc_sylvanas_fos : public ScriptedAI
{
CloseGossipMenuFor(player);
phase = PHASE_INTRO;
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
events.Reset();
events.ScheduleEvent(EVENT_INTRO_1, 1s);
}
@@ -169,7 +169,7 @@ struct npc_jaina_fos: public ScriptedAI
{
Initialize();
instance = me->GetInstanceScript();
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void Initialize()
@@ -194,7 +194,7 @@ struct npc_jaina_fos: public ScriptedAI
{
CloseGossipMenuFor(player);
phase = PHASE_INTRO;
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
events.Reset();
events.ScheduleEvent(EVENT_INTRO_1, 1s);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
index f690a3137dd..cc493bcf086 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -382,12 +382,12 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript
case 0:
player->PlayerTalkClass->SendCloseGossip();
_events.ScheduleEvent(EVENT_START_INTRO, 1s);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
case 1:
player->PlayerTalkClass->SendCloseGossip();
_events.ScheduleEvent(EVENT_SKIP_INTRO, 1s);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
default:
break;
@@ -402,7 +402,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript
_utherGUID.Clear();
_lichkingGUID.Clear();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
me->SetStandState(UNIT_STAND_STATE_STAND);
_events.ScheduleEvent(EVENT_WALK_INTRO1, 3s);
}
@@ -435,7 +435,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript
Talk(SAY_JAINA_INTRO_2);
else
Talk(SAY_SYLVANAS_INTRO_2);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
case EVENT_START_INTRO:
if (Creature* korelnOrLoralen = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_KORELN_LORALEN)))
@@ -631,7 +631,7 @@ class npc_jaina_or_sylvanas_intro_hor : public CreatureScript
}
if (Creature* uther = ObjectAccessor::GetCreature(*me, _utherGUID))
{
- uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
+ uther->SetEmoteState(EMOTE_STATE_COWER);
if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
uther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
else
@@ -902,7 +902,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
{
case 0:
player->PlayerTalkClass->SendCloseGossip();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_events.ScheduleEvent(EVENT_ESCAPE_6, 0s);
break;
default:
@@ -966,7 +966,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
me->RemoveAurasDueToSpell(SPELL_JAINA_ICE_BARRIER);
else
me->RemoveAurasDueToSpell(SPELL_SYLVANAS_CLOAK_OF_DARKNESS);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetHealth(JAINA_SYLVANAS_MAX_HEALTH);
me->SetFacingTo(SylvanasShadowThroneDoorPosition.GetOrientation());
break;
@@ -1013,7 +1013,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
lichking->AI()->AttackStart(me);
}
me->SetHealth(JAINA_SYLVANAS_MAX_HEALTH);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
case EVENT_ESCAPE_1:
if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE)))
@@ -1038,7 +1038,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE)))
{
lichking->SetReactState(REACT_PASSIVE);
- lichking->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ lichking->SetUnitFlag(UNIT_FLAG_PACIFIED);
}
_events.ScheduleEvent(EVENT_ESCAPE_3, 1500ms);
@@ -1071,7 +1071,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
case EVENT_ESCAPE_6:
if (Creature* lichking = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING_ESCAPE)))
{
- lichking->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ lichking->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
lichking->SetImmuneToPC(false);
if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
@@ -1156,7 +1156,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
else
Talk(SAY_SYLVANAS_ESCAPE_9);
DoCast(me, SPELL_CREDIT_ESCAPING_ARTHAS);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
break;
default:
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 4c02dc6fbd3..9fcc7df1730 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
@@ -123,7 +123,7 @@ class instance_halls_of_reflection : public InstanceMapScript
case NPC_KORELN:
case NPC_LORALEN:
if (GetBossState(DATA_MARWYN) != DONE)
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
KorelnOrLoralenGUID = creature->GetGUID();
break;
case NPC_THE_LICH_KING_INTRO:
@@ -317,7 +317,7 @@ class instance_halls_of_reflection : public InstanceMapScript
bunny->CastSpell(bunny, SPELL_START_HALLS_OF_REFLECTION_QUEST_AE, true);
if (Creature* korelnOrLoralen = instance->GetCreature(KorelnOrLoralenGUID))
- korelnOrLoralen->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ korelnOrLoralen->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
HandleGameObject(EntranceDoorGUID, true);
HandleGameObject(ImpenetrableDoorGUID, true);
@@ -590,7 +590,7 @@ class instance_halls_of_reflection : public InstanceMapScript
if (Creature* temp = instance->GetCreature(guid))
{
temp->CastSpell(temp, SPELL_SPIRIT_ACTIVATE, false);
- temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ temp->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
temp->SetImmuneToAll(false);
temp->AI()->DoZoneInCombat(temp);
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 71c508df17c..fae90261770 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -318,7 +318,7 @@ struct boss_krick : public ScriptedAI
Initialize();
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void KilledUnit(Unit* victim) override
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 438fb0af2de..0c11c0b8b20 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -147,7 +147,7 @@ struct boss_tyrannus : public BossAI
events.Reset();
events.SetPhase(PHASE_NONE);
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
instance->SetBossState(DATA_TYRANNUS, NOT_STARTED);
}
@@ -163,7 +163,7 @@ struct boss_tyrannus : public BossAI
void AttackStart(Unit* victim) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
if (victim && me->Attack(victim, true) && !events.IsInPhase(PHASE_INTRO))
@@ -238,7 +238,7 @@ struct boss_tyrannus : public BossAI
if (Creature* rimefang = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_RIMEFANG)))
rimefang->AI()->DoAction(ACTION_START_RIMEFANG); //set rimefang also infight
events.SetPhase(PHASE_COMBAT);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
DoCast(me, SPELL_FULL_HEAL);
DoZoneInCombat();
@@ -300,7 +300,7 @@ struct boss_rimefang : public ScriptedAI
Initialize();
me->SetCanFly(true);
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void JustReachedHome() override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 5ad5a8a0174..2dcf6181879 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -240,7 +240,7 @@ struct boss_blood_council_controller : public BossAI
for (uint32 bossData : PrincesData)
if (Creature* prince = ObjectAccessor::GetCreature(*me, instance->GetGuidData(bossData)))
{
- prince->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ prince->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
prince->SetImmuneToPC(false);
if (bossData == DATA_PRINCE_VALANAR)
{
@@ -529,7 +529,7 @@ struct BloodPrincesBossAI : public BossAI
_isEmpowered = false;
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL)))
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
controller->AI()->SetData(DATA_PRINCE_EVADE, 1);
}
}
@@ -555,7 +555,7 @@ struct BloodPrincesBossAI : public BossAI
{
case ACTION_STAND_UP:
me->RemoveAurasDueToSpell(SPELL_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
me->m_Events.AddEvent(new StandUpEvent(me), me->m_Events.CalculateTime(1s));
@@ -779,7 +779,7 @@ struct boss_prince_valanar_icc : public BloodPrincesBossAI
summon->GetPosition(x, y, z);
float ground_Z = summon->GetMap()->GetHeight(summon->GetPhaseMask(), x, y, z, true, 500.0f);
summon->GetMotionMaster()->MovePoint(POINT_KINETIC_BOMB_IMPACT, x, y, ground_Z);
- summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ summon->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
break;
}
case NPC_SHOCK_VORTEX:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 9024f032af2..fd37731f973 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -209,7 +209,7 @@ struct boss_blood_queen_lana_thel : public BossAI
player->RewardPlayerAndGroupAtEvent(Is25ManRaid() ? NPC_INFILTRATOR_MINCHAR_BQ_25 : NPC_INFILTRATOR_MINCHAR_BQ, player);
if (Creature* minchar = me->FindNearestCreature(NPC_INFILTRATOR_MINCHAR_BQ, 200.0f))
{
- minchar->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ minchar->SetEmoteState(EMOTE_ONESHOT_NONE);
minchar->SetAnimTier(AnimTier::Ground);
minchar->SetCanFly(false);
minchar->RemoveAllAuras();
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 6be1c323706..9f7bdea2263 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -364,7 +364,7 @@ struct boss_deathbringer_saurfang : public BossAI
_dead = true;
_JustDied();
_EnterEvadeMode();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
me->RemoveAurasOnEvade();
DoCastAOE(SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION);
@@ -461,7 +461,7 @@ struct boss_deathbringer_saurfang : public BossAI
switch (eventId)
{
case EVENT_INTRO_ALLIANCE_2:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetFaction(FACTION_UNDEAD_SCOURGE);
Talk(SAY_INTRO_ALLIANCE_2);
break;
@@ -474,7 +474,7 @@ struct boss_deathbringer_saurfang : public BossAI
DoCastSelf(SPELL_GRIP_OF_AGONY);
break;
case EVENT_INTRO_HORDE_2:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetFaction(FACTION_UNDEAD_SCOURGE);
Talk(SAY_INTRO_HORDE_2);
break;
@@ -661,7 +661,7 @@ struct npc_high_overlord_saurfang_icc : public ScriptedAI
for (auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr)
(*itr)->AI()->SetData(0, x);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_INTRO_HORDE_1);
_events.SetPhase(PHASE_INTRO_H);
_events.ScheduleEvent(EVENT_INTRO_HORDE_3, 18500ms, 0, PHASE_INTRO_H);
@@ -729,8 +729,8 @@ struct npc_high_overlord_saurfang_icc : public ScriptedAI
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
{
deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true); // for the packet logs.
- deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- deathbringer->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED);
+ deathbringer->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ deathbringer->SetEmoteState(EMOTE_STATE_DROWNED);
}
_events.ScheduleEvent(EVENT_OUTRO_HORDE_5, 1s); // move
_events.ScheduleEvent(EVENT_OUTRO_HORDE_6, 4s); // say
@@ -862,7 +862,7 @@ struct npc_muradin_bronzebeard_icc : public ScriptedAI
for (auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr)
(*itr)->AI()->SetData(0, x);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_INTRO_ALLIANCE_1);
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_4, 29500ms, 0, PHASE_INTRO_A);
_instance->HandleGameObject(_instance->GetGuidData(GO_SAURFANG_S_DOOR), true);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index c53184ae5a8..33e30a051e0 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -956,7 +956,7 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI
bool OnGossipSelect(Player* /*player*/, uint32 /*menuId*/, uint32 /*gossipListId*/) override
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->GetTransport()->EnableMovement(true);
_events.SetPhase(PHASE_INTRO);
_events.ScheduleEvent(EVENT_INTRO_H_1, 5s, 0, PHASE_INTRO);
@@ -1209,7 +1209,7 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI
bool OnGossipSelect(Player* /*player*/, uint32 /*menuId*/, uint32 /*gossipListId*/) override
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->GetTransport()->EnableMovement(true);
_events.SetPhase(PHASE_INTRO);
_events.ScheduleEvent(EVENT_INTRO_A_1, 5s);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 5333e753d4c..81aca39d354 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -271,7 +271,7 @@ struct boss_lady_deathwhisper : public BossAI
void AttackStart(Unit* victim) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
if (victim && me->Attack(victim, true) && _phase != PHASE_ONE)
@@ -644,12 +644,12 @@ struct npc_cult_fanatic : public ScriptedAI
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
})
.Schedule(Seconds(6), [this](TaskContext /*context*/)
{
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat(me);
@@ -735,12 +735,12 @@ struct npc_cult_adherent : public ScriptedAI
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
})
.Schedule(Seconds(6), [this](TaskContext /*context*/)
{
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
DoCastSelf(SPELL_SHROUD_OF_THE_OCCULT);
DoZoneInCombat(me);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index d357279019a..60cc7afc273 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -244,7 +244,7 @@ struct boss_professor_putricide : public BossAI
if (instance->GetBossState(DATA_ROTFACE) == DONE && instance->GetBossState(DATA_FESTERGUT) == DONE)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
}
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 0eb1b7c3227..3153a91f7b9 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -323,7 +323,7 @@ struct boss_sindragosa : public BossAI
me->SetCanFly(true);
me->SetDisableGravity(true);
me->SetSpeedRate(MOVE_FLIGHT, 4.0f);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
Milliseconds moveTime = Milliseconds(uint64(me->GetExactDist(&SindragosaFlyPos) / (me->GetSpeed(MOVE_FLIGHT) * 0.001f)));
me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SindragosaLandPos), me->m_Events.CalculateTime(moveTime + 250ms));
me->GetMotionMaster()->MovePoint(POINT_FROSTWYRM_FLY_IN, SindragosaFlyPos);
@@ -357,7 +357,7 @@ struct boss_sindragosa : public BossAI
me->SetCanFly(false);
me->SetDisableGravity(false);
me->SetHomePosition(SindragosaLandPos);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetSpeedRate(MOVE_FLIGHT, 2.5f);
// Sindragosa enters combat as soon as she lands
@@ -694,7 +694,7 @@ struct npc_spinestalker : public ScriptedAI
me->setActive(true);
me->SetFarVisible(true);
me->SetSpeedRate(MOVE_FLIGHT, 2.0f);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
Milliseconds moveTime = Milliseconds(uint64(me->GetExactDist(&SpinestalkerFlyPos) / (me->GetSpeed(MOVE_FLIGHT) * 0.001f)));
me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SpinestalkerLandPos), me->m_Events.CalculateTime(moveTime + 250ms));
me->SetDefaultMovementType(IDLE_MOTION_TYPE);
@@ -716,7 +716,7 @@ struct npc_spinestalker : public ScriptedAI
me->SetDisableGravity(false);
me->SetHomePosition(SpinestalkerLandPos);
me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
index 4c35e0ec6fc..e10f14f3ab7 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
@@ -467,7 +467,7 @@ struct boss_sister_svalna : public BossAI
CastSpellExtraArgs args;
args.AddSpellBP0(1);
summon->CastSpell(target, VEHICLE_SPELL_RIDE_HARDCODED, args);
- summon->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
+ summon->SetUnitFlag2(UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
}
break;
default:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 4a5efbe4252..5dd848c2045 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -1166,7 +1166,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI
{
_events.Reset();
if (_instance->GetBossState(DATA_THE_LICH_KING) == DONE)
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void MovementInform(uint32 type, uint32 id) override
@@ -1177,7 +1177,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI
switch (id)
{
case POINT_TIRION_INTRO:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
+ me->SetEmoteState(EMOTE_STATE_READY2H);
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
theLichKing->AI()->DoAction(ACTION_START_ENCOUNTER);
break;
@@ -1218,7 +1218,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI
if (me->GetCreatureTemplate()->GossipMenuId == menuId && !gossipListId)
{
_events.SetPhase(PHASE_INTRO);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_TIRION_INTRO, TirionIntro);
}
@@ -1227,7 +1227,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI
void JustReachedHome() override
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
}
void UpdateAI(uint32 diff) override
@@ -1500,7 +1500,7 @@ struct npc_valkyr_shadowguard : public ScriptedAI
case POINT_CHARGE:
if (Player* target = ObjectAccessor::GetPlayer(*me, _grabbedPlayer))
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (GameObject* platform = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(DATA_ARTHAS_PLATFORM)))
{
std::list<Creature*> triggers;
@@ -1737,7 +1737,7 @@ struct npc_terenas_menethil : public ScriptedAI
damage = me->GetHealth() - 1;
if (!me->HasAura(SPELL_TERENAS_LOSES_INSIDE) && !IsHeroic())
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCast(SPELL_TERENAS_LOSES_INSIDE);
_events.ScheduleEvent(EVENT_TELEPORT_BACK, 1s);
if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f))
@@ -1798,7 +1798,7 @@ struct npc_terenas_menethil : public ScriptedAI
}
break;
case EVENT_DESTROY_SOUL:
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f))
warden->CastSpell(nullptr, SPELL_DESTROY_SOUL, TRIGGERED_NONE);
DoCast(SPELL_TERENAS_LOSES_INSIDE);
@@ -2548,7 +2548,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScript
summoner->GetAI()->SetData(DATA_VILE, 1);
GetCaster()->CastSpell(nullptr, SPELL_SPIRIT_BURST, true);
GetCaster()->ToCreature()->DespawnOrUnsummon(3s);
- GetCaster()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ GetCaster()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void Register() override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index 465ef579e2d..7da5f75564d 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -378,7 +378,7 @@ struct boss_valithria_dreamwalker : public ScriptedAI
DoCastSelf(SPELL_REPUTATION_BOSS_KILL, true);
// this display id was found in sniff instead of the one on aura
me->SetDisplayId(11686);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->DespawnOrUnsummon(4s);
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_TRIGGER)))
Unit::Kill(me, trigger);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index e381bfb22a2..a03f6eb844e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -1023,7 +1023,7 @@ struct npc_icc_nerubar_broodkeeper : public ScriptedAI
{
me->SetDisableGravity(true);
me->SetImmuneToAll(true);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_03);
+ me->SetEmoteState(EMOTE_STATE_CUSTOM_SPELL_03);
}
void Reset() override
@@ -1050,7 +1050,7 @@ struct npc_icc_nerubar_broodkeeper : public ScriptedAI
me->SetHomePosition(x, y, z, me->GetOrientation());
me->GetMotionMaster()->MoveLand(POINT_LAND, Position(x, y, z));
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
}
void MovementInform(uint32 type, uint32 id) override
@@ -1313,9 +1313,9 @@ class spell_icc_stoneform : public AuraScript
if (Creature* target = GetTarget()->ToCreature())
{
target->SetReactState(REACT_PASSIVE);
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->SetImmuneToPC(true);
- target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_02);
+ target->SetEmoteState(EMOTE_STATE_CUSTOM_SPELL_02);
}
}
@@ -1324,9 +1324,9 @@ class spell_icc_stoneform : public AuraScript
if (Creature* target = GetTarget()->ToCreature())
{
target->SetReactState(REACT_AGGRESSIVE);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->SetImmuneToPC(false);
- target->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ target->SetEmoteState(EMOTE_ONESHOT_NONE);
}
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index a8185a2599d..5c781128fe5 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -272,7 +272,7 @@ class instance_icecrown_citadel : public InstanceMapScript
break;
case NPC_INFILTRATOR_MINCHAR_BQ:
// keep him in air
- creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ creature->SetEmoteState(EMOTE_ONESHOT_NONE);
creature->SetDisableGravity(true);
break;
case NPC_CROK_SCOURGEBANE:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 0c997074a7a..55385b646b0 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -224,7 +224,7 @@ struct boss_kelthuzad : public BossAI
return;
_Reset();
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
_skeletonCount = 0;
_bansheeCount = 0;
@@ -429,7 +429,7 @@ struct boss_kelthuzad : public BossAI
case EVENT_PHASE_TWO:
me->CastStop();
events.SetPhase(PHASE_TWO);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
ResetThreatList();
me->SetReactState(REACT_AGGRESSIVE);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index 42dd01c4cf0..567acea1156 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -97,7 +97,7 @@ struct boss_noth : public BossAI
_Reset();
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
balconyCount = 0;
events.SetPhase(PHASE_NONE);
@@ -233,7 +233,7 @@ struct boss_noth : public BossAI
case EVENT_BALCONY:
events.SetPhase(PHASE_BALCONY);
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->AttackStop();
me->StopMoving();
me->RemoveAllAuras();
@@ -289,7 +289,7 @@ struct boss_noth : public BossAI
EnterPhaseGround();
break;
case EVENT_GROUND_ATTACKABLE:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
break;
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
index 67b7eb05f17..19bb9649717 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
@@ -170,7 +170,7 @@ struct npc_dk_understudy : public ScriptedAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
if (Creature* razuvious = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_RAZUVIOUS)))
razuvious->AI()->DoZoneInCombat();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
index 062346066cc..9116e778146 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
@@ -141,7 +141,7 @@ struct boss_sapphiron : public BossAI
if (!instance->GetData(DATA_HAD_SAPPHIRON_BIRTH))
{
me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
}
@@ -394,7 +394,7 @@ struct boss_sapphiron : public BossAI
return;
case EVENT_BIRTH:
me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
return;
case EVENT_DRAIN:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index 120487e8418..8dd494f7855 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -298,7 +298,7 @@ public:
{
events.SetPhase(PHASE_TRANSITION);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
events.ScheduleEvent(EVENT_TRANSITION_1, 10s, 0, PHASE_TRANSITION);
events.ScheduleEvent(EVENT_TRANSITION_2, 12s, 0, PHASE_TRANSITION);
@@ -316,7 +316,7 @@ public:
me->DespawnOrUnsummon(0s, 30s);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
me->SetImmuneToPC(true);
me->setActive(false);
me->SetFarVisible(false);
@@ -504,7 +504,7 @@ public:
me->SetFullHealth();
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
Talk(EMOTE_FEIGN_REVIVE);
isFeignDeath = false;
@@ -575,7 +575,7 @@ public:
if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS)))
thaddius->AI()->DoAction(ACTION_STALAGG_DIED);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
@@ -738,7 +738,7 @@ public:
me->SetFullHealth();
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
Talk(EMOTE_FEIGN_REVIVE);
isFeignDeath = false;
@@ -814,7 +814,7 @@ public:
if (Creature* thaddius = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THADDIUS)))
thaddius->AI()->DoAction(ACTION_FEUGEN_DIED);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAllAuras();
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 2afd6fc82de..4e882bb0a55 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -370,7 +370,7 @@ struct boss_malygos : public BossAI
me->SetDisableGravity(true);
me->SetImmuneToAll(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
// TO DO: find what in core is making boss slower than in retail (when correct speed data) or find missing movement flag update or forced spline change
me->SetSpeedRate(MOVE_FLIGHT, _flySpeed * 0.25f);
if (_despawned)
@@ -682,7 +682,7 @@ struct boss_malygos : public BossAI
if (!_firstCyclicMovementStarted)
{
_firstCyclicMovementStarted = true;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Creature* alexstraszaBunny = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALEXSTRASZA_BUNNY_GUID)))
me->SetFacingToObject(alexstraszaBunny);
events.ScheduleEvent(EVENT_SUMMON_ARCANE_BOMB, 1s, 0, PHASE_TWO);
@@ -916,7 +916,7 @@ struct boss_malygos : public BossAI
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_DEFAULT, LIGHT_OBSCURE_ARCANE_RUNES, 1s);
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
DoCast(me, SPELL_IMMUNE_CURSES);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
SetPhase(PHASE_THREE, true);
@@ -1131,7 +1131,7 @@ struct npc_melee_hover_disk : public VehicleAI
{
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisableGravity(false);
me->SetCanFly(false);
}
@@ -1161,7 +1161,7 @@ struct npc_melee_hover_disk : public VehicleAI
if (vehicleTemp->GetPassenger(0) && vehicleTemp->GetPassenger(0)->GetTypeId() == TYPEID_PLAYER)
{
vehicleTemp->RemoveAllPassengers();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
index 4cd27f3b58a..5afea688814 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -123,7 +123,7 @@ struct boss_magus_telestra : public ScriptedAI
{
Initialize();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(true);
instance->SetBossState(DATA_MAGUS_TELESTRA, NOT_STARTED);
@@ -237,7 +237,7 @@ struct boss_magus_telestra : public ScriptedAI
me->AttackStop();
if (uiIsWaitingToAppearTimer <= diff)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
bIsWaitingToAppear = false;
} else uiIsWaitingToAppearTimer -= diff;
return;
@@ -274,7 +274,7 @@ struct boss_magus_telestra : public ScriptedAI
me->CastStop();
me->RemoveAllAuras();
me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS);
uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS);
uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS);
@@ -291,7 +291,7 @@ struct boss_magus_telestra : public ScriptedAI
me->CastStop();
me->RemoveAllAuras();
me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
uiFireMagusGUID = SplitPersonality(NPC_FIRE_MAGUS);
uiFrostMagusGUID = SplitPersonality(NPC_FROST_MAGUS);
uiArcaneMagusGUID = SplitPersonality(NPC_ARCANE_MAGUS);
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index f889e11a66c..406c6adf578 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -82,7 +82,7 @@ class instance_oculus : public InstanceMapScript
BelgaristraszGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS) == DONE)
{
- creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
creature->Relocate(BelgaristraszMove);
}
break;
@@ -90,7 +90,7 @@ class instance_oculus : public InstanceMapScript
EternosGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS) == DONE)
{
- creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
creature->Relocate(EternosMove);
}
break;
@@ -98,7 +98,7 @@ class instance_oculus : public InstanceMapScript
VerdisaGUID = creature->GetGUID();
if (GetBossState(DATA_DRAKOS) == DONE)
{
- creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
creature->Relocate(VerdisaMove);
}
break;
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 5a09a369d79..4424322d492 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -196,7 +196,7 @@ struct npc_verdisa_beglaristrasz_eternos : public ScriptedAI
Talk(SAY_BELGARISTRASZ);
// The gossip flag should activate when Drakos die and not from DB
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index df601183119..cf585bda529 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -106,7 +106,7 @@ struct boss_ionar : public ScriptedAI
Initialize();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
if (!me->IsVisible())
@@ -146,7 +146,7 @@ struct boss_ionar : public ScriptedAI
me->AttackStop();
me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->GetMotionMaster()->Clear();
@@ -230,7 +230,7 @@ struct boss_ionar : public ScriptedAI
else if (lSparkList.empty())
{
me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(false, UNIT_STATE_ROOT);
DoCast(me, SPELL_SPARK_DESPAWN, false);
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index def07dee654..80f35573d52 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -234,7 +234,7 @@ struct npc_tribuna_controller : public ScriptedAI
if (Creature* summon = me->SummonCreature(NPC_DARK_MATTER_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1s))
{
summon->SetDisplayId(11686);
- summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
summon->CastSpell(target, SPELL_DARK_MATTER, true);
}
}
@@ -250,7 +250,7 @@ struct npc_tribuna_controller : public ScriptedAI
if (Creature* summon = me->SummonCreature(NPC_SEARING_GAZE_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1s))
{
summon->SetDisplayId(11686);
- summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
summon->CastSpell(target, SPELL_SEARING_GAZE, true);
}
}
@@ -385,7 +385,7 @@ struct npc_brann_hos : public EscortAI
void StartWP()
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
SetEscortPaused(false);
uiStep = 1;
Start();
@@ -650,7 +650,7 @@ struct npc_brann_hos : public EscortAI
Player* player = GetPlayerForEscort();
if (player)
player->GroupEventHappens(QUEST_HALLS_OF_STONE, me);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
JumpToNextStep(180000);
break;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index f7200681e51..b38be3aa41b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -313,7 +313,7 @@ struct boss_algalon_the_observer : public BossAI
{
case ACTION_START_INTRO:
{
- me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DO_NOT_FADE_IN);
+ me->SetUnitFlag2(UNIT_FLAG2_DO_NOT_FADE_IN);
me->SetDisableGravity(true);
DoCastSelf(SPELL_ARRIVAL, true);
DoCastSelf(SPELL_RIDE_THE_LIGHTNING, true);
@@ -343,7 +343,7 @@ struct boss_algalon_the_observer : public BossAI
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_2, 17s);
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_3, 26s);
me->DespawnOrUnsummon(34s);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToNPC(true);
break;
case ACTION_INIT_ALGALON:
@@ -363,7 +363,7 @@ struct boss_algalon_the_observer : public BossAI
void JustEngagedWith(Unit* who) override
{
Milliseconds introDelay = 0ms;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToNPC(true);
events.Reset();
events.SetPhase(PHASE_ROLE_PLAY);
@@ -487,7 +487,7 @@ struct boss_algalon_the_observer : public BossAI
events.SetPhase(PHASE_ROLE_PLAY);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_SELF_STUN);
events.Reset();
summons.DespawnAll();
@@ -562,7 +562,7 @@ struct boss_algalon_the_observer : public BossAI
{
events.SetPhase(PHASE_NORMAL);
me->SetSheath(SHEATH_STATE_MELEE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToNPC(false);
me->SetReactState(REACT_DEFENSIVE);
DoCastAOE(SPELL_SUPERMASSIVE_FAIL, true);
@@ -639,7 +639,7 @@ struct boss_algalon_the_observer : public BossAI
me->RemoveAllAuras();
ResetThreatList();
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME);
+ me->SetUnitFlag(UNIT_FLAG_RENAME);
events.ScheduleEvent(EVENT_OUTRO_2, 2s);
break;
case EVENT_OUTRO_2:
@@ -654,7 +654,7 @@ struct boss_algalon_the_observer : public BossAI
break;
case EVENT_OUTRO_4:
DoCastAOE(SPELL_SUPERMASSIVE_FAIL);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
break;
case EVENT_OUTRO_5:
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos))
@@ -749,7 +749,7 @@ struct npc_living_constellation : public CreatureAI
if (Unit* target = algalon->AI()->SelectTarget(SelectTargetMethod::Random, 0, NonTankTargetSelector(algalon)))
{
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
AttackStart(target);
DoZoneInCombat();
_isActive = true;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 90ff67b6821..a08bb9af91f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -422,7 +422,7 @@ struct npc_feral_defender : public ScriptedAI
case EVENT_RESPAWN_DEFENDER_3:
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
DoCastSelf(SPELL_FULL_HEAL, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
me->SetDisableGravity(false);
me->SetHover(false);
@@ -451,7 +451,7 @@ struct npc_feral_defender : public ScriptedAI
{
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAurasDueToSpell(SPELL_RANDOM_AGRO_PERIODIC);
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true);
DoCastSelf(SPELL_FERAL_ESSENCE_APPLICATION_REMOVAL, true);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index 231630afe9c..78387df18e8 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -248,7 +248,7 @@ class boss_flame_leviathan : public CreatureScript
DoCast(SPELL_INVIS_AND_STEALTH_DETECT);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
me->SetReactState(REACT_PASSIVE);
}
@@ -568,7 +568,7 @@ class boss_flame_leviathan : public CreatureScript
if (id != ACTION_MOVE_TO_CENTER_POSITION)
return;
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
}
private:
@@ -635,17 +635,17 @@ class boss_flame_leviathan_seat : public CreatureScript
if (Creature* turret = turretPassenger->ToCreature())
{
turret->SetFaction(me->GetVehicleBase()->GetFaction());
- turret->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // uninteractible
+ turret->ReplaceAllUnitFlags(UnitFlags(0)); // unselectable
turret->AI()->AttackStart(who);
}
if (Unit* devicePassenger = me->GetVehicleKit()->GetPassenger(SEAT_DEVICE))
if (Creature* device = devicePassenger->ToCreature())
{
- device->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
- device->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ device->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
+ device->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
else if (seatId == SEAT_TURRET)
{
@@ -654,8 +654,8 @@ class boss_flame_leviathan_seat : public CreatureScript
if (Unit* device = ASSERT_NOTNULL(me->GetVehicleKit())->GetPassenger(SEAT_DEVICE))
{
- device->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
- device->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // uninteractible
+ device->SetNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
+ device->ReplaceAllUnitFlags(UnitFlags(0)); // unselectable
}
}
}
@@ -770,8 +770,8 @@ class boss_flame_leviathan_overload_device : public CreatureScript
if (me->GetVehicle())
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Unit* player = me->GetVehicle()->GetPassenger(SEAT_PLAYER))
{
@@ -898,7 +898,7 @@ class npc_pool_of_tar : public CreatureScript
{
npc_pool_of_tarAI(Creature* creature) : ScriptedAI(creature)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_PASSIVE);
me->CastSpell(me, SPELL_TAR_PASSIVE, true);
}
@@ -967,7 +967,7 @@ class npc_thorims_hammer : public CreatureScript
{
npc_thorims_hammerAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->CastSpell(me, AURA_DUMMY_BLUE, true);
}
@@ -1006,7 +1006,7 @@ public:
npc_mimirons_infernoAI(Creature* creature) : EscortAI(creature)
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->CastSpell(me, AURA_DUMMY_YELLOW, true);
me->SetReactState(REACT_PASSIVE);
}
@@ -1063,7 +1063,7 @@ class npc_hodirs_fury : public CreatureScript
{
npc_hodirs_furyAI(Creature* creature) : ScriptedAI(creature)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->CastSpell(me, AURA_DUMMY_GREEN, true);
}
@@ -1211,10 +1211,10 @@ class npc_brann_bronzebeard_ulduar_intro : public CreatureScript
{
if (menuId == GOSSIP_MENU_BRANN_BRONZEBEARD && gossipListId == GOSSIP_OPTION_BRANN_BRONZEBEARD)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
player->PlayerTalkClass->SendCloseGossip();
if (Creature* loreKeeper = _instance->GetCreature(DATA_LORE_KEEPER_OF_NORGANNON))
- loreKeeper->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ loreKeeper->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
return false;
}
@@ -1265,7 +1265,7 @@ class npc_lorekeeper : public CreatureScript
{
if (menuId == GOSSIP_MENU_LORE_KEEPER && gossipListId == GOSSIP_OPTION_LORE_KEEPER)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
player->PlayerTalkClass->SendCloseGossip();
_instance->instance->LoadGrid(364, -16); // make sure leviathan is loaded
@@ -1278,7 +1278,7 @@ class npc_lorekeeper : public CreatureScript
{
if (Creature* brann = _instance->GetCreature(DATA_BRANN_BRONZEBEARD_INTRO))
{
- brann->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ brann->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
delorah->GetMotionMaster()->MovePoint(0, brann->GetPositionX() - 4, brann->GetPositionY(), brann->GetPositionZ());
/// @todo delorah->AI()->Talk(xxxx, brann->GetGUID()); when reached at branz
}
@@ -1674,7 +1674,7 @@ class spell_systems_shutdown : public SpellScriptLoader
//! This could probably in the SPELL_EFFECT_SEND_EVENT handler too:
owner->AddUnitState(UNIT_STATE_STUNNED | UNIT_STATE_ROOT);
- owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ owner->SetUnitFlag(UNIT_FLAG_STUNNED);
owner->RemoveAurasDueToSpell(SPELL_GATHERING_SPEED);
}
@@ -1684,7 +1684,7 @@ class spell_systems_shutdown : public SpellScriptLoader
if (!owner)
return;
- owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
+ owner->RemoveUnitFlag(UNIT_FLAG_STUNNED);
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index bffcd48126c..d0e77013d93 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -1364,7 +1364,7 @@ class npc_healthy_spore : public CreatureScript
npc_healthy_sporeAI(Creature* creature) : ScriptedAI(creature)
{
SetCombatMovement(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
me->SetReactState(REACT_PASSIVE);
DoCast(me, SPELL_HEALTHY_SPORE_VISUAL);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 3d861c31b54..cd9c171a4de 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -424,7 +424,7 @@ class npc_saronite_vapors : public CreatureScript
if (damage >= me->GetHealth())
{
damage = 0;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->SetHealth(me->GetMaxHealth());
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index d12f3c96a90..1b78fcef629 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -187,7 +187,7 @@ class npc_flash_freeze : public CreatureScript
Initialize();
instance = me->GetInstanceScript();
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
me->SetControlled(true, UNIT_STATE_ROOT);
}
@@ -267,7 +267,7 @@ class npc_ice_block : public CreatureScript
{
instance = me->GetInstanceScript();
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
me->SetControlled(true, UNIT_STATE_ROOT);
}
@@ -282,7 +282,7 @@ class npc_ice_block : public CreatureScript
return;
targetGUID = summoner->GetGUID();
- summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
+ summoner->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
summoner->SetControlled(true, UNIT_STATE_ROOT);
me->SetInCombatWith(summoner);
AddThreat(summoner, 250.0f);
@@ -299,7 +299,7 @@ class npc_ice_block : public CreatureScript
{
if (Creature* helper = ObjectAccessor::GetCreature(*me, targetGUID))
{
- helper->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
+ helper->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
helper->SetControlled(false, UNIT_STATE_ROOT);
if (Creature* hodir = instance->GetCreature(DATA_HODIR))
@@ -403,7 +403,7 @@ class boss_hodir : public CreatureScript
me->RemoveAllAttackers();
me->AttackStop();
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetControlled(true, UNIT_STATE_ROOT);
me->InterruptNonMeleeSpells(true);
me->StopMoving();
@@ -671,7 +671,7 @@ class npc_hodir_priest : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
+ if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED))
return;
events.Update(diff);
@@ -753,7 +753,7 @@ class npc_hodir_shaman : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
+ if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED))
return;
events.Update(diff);
@@ -818,7 +818,7 @@ class npc_hodir_druid : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
+ if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED))
return;
events.Update(diff);
@@ -896,7 +896,7 @@ class npc_hodir_mage : public CreatureScript
void UpdateAI(uint32 diff) override
{
- if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED))
+ if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitFlag(UNIT_FLAG_STUNNED))
return;
events.Update(diff);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index 66f8dbbc1a0..b510f458648 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -181,7 +181,7 @@ class boss_ignis : public CreatureScript
{
summon->SetFaction(FACTION_MONSTER_2);
summon->SetReactState(REACT_AGGRESSIVE);
- summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED);
+ summon->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED);
summon->SetImmuneToPC(false);
summon->SetControlled(false, UNIT_STATE_ROOT);
}
@@ -383,7 +383,7 @@ class npc_scorch_ground : public CreatureScript
npc_scorch_groundAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
me->SetControlled(true, UNIT_STATE_ROOT);
creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index fd2f7483566..b9ead2ee63e 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -107,7 +107,7 @@ class boss_kologarn : public CreatureScript
boss_kologarnAI(Creature* creature) : BossAI(creature, DATA_KOLOGARN),
left(false), right(false)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetControlled(true, UNIT_STATE_ROOT);
DoCast(SPELL_KOLOGARN_REDUCE_PARRY);
@@ -139,7 +139,7 @@ class boss_kologarn : public CreatureScript
void Reset() override
{
_Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
eyebeamTarget.Clear();
}
@@ -148,7 +148,7 @@ class boss_kologarn : public CreatureScript
Talk(SAY_DEATH);
DoCast(SPELL_KOLOGARN_PACIFY);
me->GetMotionMaster()->MoveTargetedHome();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetCorpseDelay(604800); // Prevent corpse from despawning.
_JustDied();
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 6a9eacaedfd..174795375dc 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -427,7 +427,7 @@ class boss_mimiron : public CreatureScript
return;
BossAI::JustEngagedWith(who);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->RemoveAurasDueToSpell(SPELL_WELD);
DoCast(me->GetVehicleBase(), SPELL_SEAT_6);
@@ -462,7 +462,7 @@ class boss_mimiron : public CreatureScript
aerial->AI()->EnterEvadeMode();
_Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (GameObject* elevator = instance->GetGameObject(DATA_MIMIRON_ELEVATOR))
elevator->SetGoState(GO_STATE_ACTIVE);
@@ -512,7 +512,7 @@ class boss_mimiron : public CreatureScript
{
DoCast(mkii, SPELL_SEAT_7);
mkii->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
- mkii->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ mkii->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
events.ScheduleEvent(EVENT_INTRO_3, 2s);
break;
@@ -658,7 +658,7 @@ class boss_mimiron : public CreatureScript
break;
case EVENT_OUTTRO_3:
DoCast(me, SPELL_TELEPORT_VISUAL);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->DespawnOrUnsummon(1s); // sniffs say 6 sec after, but it doesnt matter.
break;
default:
@@ -700,7 +700,7 @@ class boss_leviathan_mk_ii : public CreatureScript
if (damage >= me->GetHealth())
{
damage = me->GetHealth() - 1; // Let creature fall to 1 hp, but do not let it die or damage itself with SetHealth().
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
DoCast(me, SPELL_VEHICLE_DAMAGED, true);
me->AttackStop();
me->SetReactState(REACT_PASSIVE);
@@ -751,7 +751,7 @@ class boss_leviathan_mk_ii : public CreatureScript
break;
case DO_ASSEMBLED_COMBAT:
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
events.SetPhase(PHASE_VOL7RON);
@@ -800,7 +800,7 @@ class boss_leviathan_mk_ii : public CreatureScript
switch (point)
{
case WP_MKII_P1_IDLE:
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCast(me, SPELL_HALF_HEAL);
if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON))
@@ -827,7 +827,7 @@ class boss_leviathan_mk_ii : public CreatureScript
void Reset() override
{
_Reset();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_PASSIVE);
_fireFighter = false;
_setupMine = true;
@@ -936,10 +936,10 @@ class boss_vx_001 : public CreatureScript
boss_vx_001AI(Creature* creature) : BossAI(creature, DATA_MIMIRON)
{
me->SetDisableGravity(true); // This is the unfold visual state of VX-001, it has to be set on create as it requires an objectupdate if set later.
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SPECIAL_UNARMED); // This is a hack to force the yet to be unfolded visual state.
+ me->SetEmoteState(EMOTE_STATE_SPECIAL_UNARMED); // This is a hack to force the yet to be unfolded visual state.
me->SetReactState(REACT_PASSIVE);
_fireFighter = false;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void DamageTaken(Unit* who, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
@@ -954,7 +954,7 @@ class boss_vx_001 : public CreatureScript
if (events.IsInPhase(PHASE_VX_001))
{
me->CastStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_UNINTERACTIBLE);
DoCast(me, SPELL_HALF_HEAL); // has no effect, wat
DoCast(me, SPELL_TORSO_DISABLED);
if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON))
@@ -963,7 +963,7 @@ class boss_vx_001 : public CreatureScript
else if (events.IsInPhase(PHASE_VOL7RON))
{
me->SetStandState(UNIT_STAND_STATE_DEAD);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
Unit* ref = who ? who : me;
if (IsEncounterFinished(ref))
@@ -987,10 +987,10 @@ class boss_vx_001 : public CreatureScript
events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, 6s);
[[fallthrough]];
case DO_START_VX001:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); // Remove emotestate.
+ me->SetEmoteState(EMOTE_ONESHOT_NONE); // Remove emotestate.
//me->SetHover(true); // Blizzard handles hover animation like this it seems.
DoCast(me, SPELL_HEAT_WAVE_AURA);
@@ -1001,7 +1001,7 @@ class boss_vx_001 : public CreatureScript
break;
case DO_ASSEMBLED_COMBAT:
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
events.SetPhase(PHASE_VOL7RON);
events.ScheduleEvent(EVENT_ROCKET_STRIKE, 20s);
@@ -1169,7 +1169,7 @@ class boss_aerial_command_unit : public CreatureScript
case DO_START_AERIAL:
me->SetDisableGravity(false);
me->SetHover(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->SetReactState(REACT_AGGRESSIVE);
@@ -1189,7 +1189,7 @@ class boss_aerial_command_unit : public CreatureScript
me->SetReactState(REACT_AGGRESSIVE);
break;
case DO_ASSEMBLED_COMBAT:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
me->SetStandState(UNIT_STAND_STATE_STAND);
events.SetPhase(PHASE_VOL7RON);
@@ -1223,7 +1223,7 @@ class boss_aerial_command_unit : public CreatureScript
if (type == POINT_MOTION_TYPE && point == WP_AERIAL_P4_POS)
{
me->SetFacingTo(VehicleRelocation[WP_AERIAL_P4_POS].GetOrientation());
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
if (Creature* mimiron = instance->GetCreature(DATA_MIMIRON))
@@ -1723,7 +1723,7 @@ class spell_mimiron_bomb_bot : public SpellScriptLoader
{
if (Creature* target = GetHitCreature())
{
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
+ target->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
target->DespawnOrUnsummon(1s);
}
}
@@ -1905,7 +1905,7 @@ class spell_mimiron_magnetic_core : public SpellScriptLoader
void FilterTargets(std::list<WorldObject*>& targets)
{
- targets.remove_if([](WorldObject* obj) { return obj->ToUnit() && (obj->ToUnit()->GetVehicleBase() || obj->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)); });
+ targets.remove_if([](WorldObject* obj) { return obj->IsUnit() && (obj->ToUnit()->GetVehicleBase() || obj->ToUnit()->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)); });
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index c552806e377..a1a43dc20d8 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -383,7 +383,7 @@ struct boss_razorscale : public BossAI
switch (actionId)
{
case ACTION_START_FIGHT:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
me->SetSpeedRate(MOVE_RUN, 3.0f);
me->StopMoving();
me->GetMotionMaster()->MovePoint(POINT_RAZORSCALE_FLIGHT, RazorFlightPosition);
@@ -687,7 +687,7 @@ struct npc_expedition_commander : public ScriptedAI
{
CloseGossipMenuFor(player);
_events.SetPhase(PHASE_COMBAT);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
if (Creature* razorscale = _instance->GetCreature(DATA_RAZORSCALE))
razorscale->AI()->DoAction(ACTION_START_FIGHT);
return true;
@@ -904,7 +904,7 @@ struct npc_expedition_defender : public ScriptedAI
return;
me->SetHomePosition(DefendersPosition[_myPositionNumber]);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
}
private:
@@ -934,7 +934,7 @@ struct npc_expedition_trapper : public ScriptedAI
me->GetMotionMaster()->MoveTargetedHome();
break;
case ACTION_START_FIGHT:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
break;
case ACTION_STOP_CAST:
me->InterruptNonMeleeSpells(false);
@@ -998,7 +998,7 @@ struct npc_expedition_engineer : public ScriptedAI
_scheduler.Schedule(Seconds(28), [this](TaskContext /*context*/)
{
HandleHarpoonMovement();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
+ me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
});
}
else if (actionId == ACTION_FIX_HARPOONS)
@@ -1173,7 +1173,7 @@ struct npc_expedition_engineer : public ScriptedAI
_scheduler.
Schedule(Seconds(3), [this](TaskContext /*context*/)
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
})
.Schedule(Seconds(18), [this](TaskContext /*context*/)
{
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 531f6ae44b0..d3e8ba7045f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -576,7 +576,7 @@ class boss_thorim : public CreatureScript
me->RemoveAllAttackers();
me->AttackStop();
me->SetFaction(FACTION_FRIENDLY);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME);
+ me->SetUnitFlag(UNIT_FLAG_RENAME);
if (Creature* controller = instance->GetCreature(DATA_THORIM_CONTROLLER))
controller->RemoveAllAuras();
@@ -1934,7 +1934,7 @@ class spell_thorim_stormhammer : public SpellScriptLoader
void LoseHammer()
{
- GetCaster()->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
+ GetCaster()->SetVirtualItem(0, 0);
}
void Register() override
@@ -1977,7 +1977,7 @@ class spell_thorim_stormhammer_sif : public SpellScriptLoader
void LoseHammer()
{
- GetCaster()->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
+ GetCaster()->SetVirtualItem(0, 0);
}
void Register() override
@@ -2006,7 +2006,7 @@ class spell_thorim_stormhammer_boomerang : public SpellScriptLoader
void RecoverHammer(SpellEffIndex /*effIndex*/)
{
if (Unit* target = GetHitUnit())
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THORIM_WEAPON_DISPLAY_ID);
+ target->SetVirtualItem(0, THORIM_WEAPON_DISPLAY_ID);
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 8ad560ddf90..f766667b910 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -211,7 +211,7 @@ struct boss_xt002 : public BossAI
{
Talk(SAY_DEATH);
_JustDied();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void ExposeHeart()
@@ -242,7 +242,7 @@ struct boss_xt002 : public BossAI
DoCastSelf(SPELL_STAND);
DoCastSelf(SPELL_COOLDOWN_CREATURE_SPECIAL_2);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (Creature* heart = instance->GetCreature(DATA_XT002_HEART))
{
if (heart->IsAlive())
@@ -351,7 +351,7 @@ struct boss_xt002 : public BossAI
break;
case EVENT_SUBMERGE:
DoCastSelf(SPELL_SUBMERGE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Talk(EMOTE_HEART_OPENED);
if (Creature* heart = instance->GetCreature(DATA_XT002_HEART))
heart->AI()->DoAction(ACTION_START_PHASE_HEART);
@@ -414,14 +414,14 @@ struct npc_xt002_heart : public NullCreatureAI
DoCastSelf(SPELL_FULL_HEAL);
DoCast(xt002, SPELL_RIDE_VEHICLE_EXPOSED, true);
DoCastSelf(SPELL_HEART_OVERLOAD);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
else if (action == ACTION_DISPOSE_HEART)
{
DoCast(xt002, SPELL_HEART_RIDE_VEHICLE, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index f9c8555cc67..614e76666af 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -1060,7 +1060,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
void Reset() override
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
DoCast(me, SPELL_MATCH_HEALTH);
_summons.DespawnAll();
@@ -1075,7 +1075,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
DoCastAOE(SPELL_SHATTERED_ILLUSION_REMOVE, true);
DoCast(me, SPELL_MATCH_HEALTH_2, true); // it doesn't seem to hit Yogg-Saron here
DoCast(me, SPELL_BRAIN_HURT_VISUAL, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
if (Creature* voice = _instance->GetCreature(DATA_VOICE_OF_YOGG_SARON))
@@ -1553,7 +1553,7 @@ class npc_observation_ring_keeper : public CreatureScript
if (menuId != 10333)
return false;
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->DespawnOrUnsummon(2s);
DoCast(SPELL_TELEPORT);
Talk(SAY_KEEPER_CHOSEN_1, player);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index e910f4e9510..f2b06039667 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -1029,7 +1029,7 @@ class instance_ulduar : public InstanceMapScript
if (Vehicle* vehicle = vehicleCreature->GetVehicleKit())
{
vehicle->RemoveAllPassengers();
- vehicleCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ vehicleCreature->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
vehicleCreature->DespawnOrUnsummon(5min);
}
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index 85266493ef8..27f3321fabf 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -108,7 +108,7 @@ struct boss_ingvar_the_plunderer : public BossAI
{
if (me->GetEntry() != NPC_INGVAR)
me->UpdateEntry(NPC_INGVAR);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
_Reset();
@@ -125,7 +125,7 @@ struct boss_ingvar_the_plunderer : public BossAI
me->StopMoving();
DoCast(me, SPELL_INGVAR_FEIGN_DEATH, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true, true);
Talk(SAY_DEATH);
@@ -223,7 +223,7 @@ struct boss_ingvar_the_plunderer : public BossAI
events.ScheduleEvent(EVENT_SMASH, 12s, 16s, 0, PHASE_HUMAN);
break;
case EVENT_JUST_TRANSFORMED:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
ScheduleSecondPhase();
Talk(SAY_AGGRO);
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index 7474ff52129..4794101ae14 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -240,10 +240,10 @@ struct npc_vrykul_skeleton : public ScriptedAI
// There are some issues with pets
// they will still attack. I would say it is a PetAI bug
- if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
{
// from sniffs
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetStandState(UNIT_STAND_STATE_DEAD);
events.Reset();
@@ -284,7 +284,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
case EVENT_SHADOW_FISSURE:
DoCast(me, SPELL_SHADOW_FISSURE, true);
DoCastAOE(SPELL_BONE_ARMOR, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->GetMotionMaster()->MoveChase(me->GetVictim());
events.ScheduleEvent(EVENT_DECREPIFY, 4s, 6s);
@@ -297,7 +297,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
return;
}
- if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (!me->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
index e718c96c08c..eab6e918cc5 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp
@@ -123,7 +123,7 @@ struct generic_boss_controllerAI : public BossAI
if (otherBoss->IsAlive())
{
Talk(SAY_DIED_FIRST);
- me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
+ me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
otherBoss->AI()->DoAction(ACTION_OTHER_JUST_DIED);
DoCast(me, OtherBossData == DATA_DALRONN ? SPELL_SUMMON_SKARVALD_GHOST : SPELL_SUMMON_DALRONN_GHOST, true);
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index aeebee883fc..9da294462c8 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -68,7 +68,7 @@ struct npc_dragonflayer_forge_master : public ScriptedAI
if (_forgeId)
_instance->SetData(DATA_FORGE_1 + _forgeId - 1, IN_PROGRESS);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
}
void UpdateAI(uint32 /*diff*/) override
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 9c716f31a12..ef8a950ca73 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -572,7 +572,7 @@ class spell_palehoof_awaken_subboss : public SpellScript
{
Unit* target = GetHitUnit();
GetCaster()->CastSpell(target, SPELL_ORB_CHANNEL);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8500ms));
}
@@ -590,7 +590,7 @@ class spell_palehoof_awaken_gortok : public SpellScript
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* target = GetHitUnit();
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ target->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
target->m_Events.AddEvent(new CombatStartEvent(target), target->m_Events.CalculateTime(8s));
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 0fdfe9b04e3..e54f22dd77c 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -225,7 +225,7 @@ struct boss_skadi : public BossAI
{
case ACTION_START_ENCOUNTER:
instance->SetBossState(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->setActive(true);
SpawnFirstWave();
Talk(SAY_AGGRO);
@@ -260,7 +260,7 @@ struct boss_skadi : public BossAI
Talk(SAY_DRAKE_DEATH);
DoCastSelf(SPELL_SKADI_TELEPORT);
summons.DespawnEntry(NPC_WORLD_TRIGGER);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->SetReactState(REACT_AGGRESSIVE);
_phase = PHASE_GROUND;
@@ -477,7 +477,7 @@ struct npc_skadi_trashAI : public ScriptedAI
switch (pointId)
{
case POINT_0:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, me->GetEntry() == NPC_YMIRJAR_WARRIOR ? EMOTE_STATE_READY1H : EMOTE_STATE_READY2HL);
+ me->SetEmoteState(me->GetEntry() == NPC_YMIRJAR_WARRIOR ? EMOTE_STATE_READY1H : EMOTE_STATE_READY2HL);
break;
case POINT_1:
_scheduler.Schedule(Seconds(1), [this](TaskContext /*context*/)
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index b74f2462f57..b8d9fce5e4b 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -158,7 +158,7 @@ struct boss_svala : public BossAI
else
{
events.SetPhase(IDLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
me->SetDisableGravity(false);
@@ -189,14 +189,14 @@ struct boss_svala : public BossAI
if (events.IsInPhase(IDLE) && me->IsValidAttackTarget(who) && me->IsWithinDistInMap(who, 40))
{
events.SetPhase(INTRO);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (GameObject* mirror = instance->GetGameObject(DATA_UTGARDE_MIRROR))
mirror->SetGoState(GO_STATE_READY);
if (Creature* arthas = me->SummonCreature(NPC_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN))
{
- arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
_arthasGUID = arthas->GetGUID();
}
events.ScheduleEvent(EVENT_INTRO_SVALA_TALK_0, 1s, 0, INTRO);
@@ -290,7 +290,7 @@ struct boss_svala : public BossAI
}
me->RemoveAllAuras();
me->UpdateEntry(NPC_SVALA_SORROWGRAVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
events.ScheduleEvent(EVENT_INTRO_SVALA_TALK_1, 2s, 0, INTRO);
break;
case EVENT_INTRO_SVALA_TALK_1:
@@ -321,7 +321,7 @@ struct boss_svala : public BossAI
case EVENT_INTRO_DESPAWN_ARTHAS:
if (GameObject* mirror = instance->GetGameObject(DATA_UTGARDE_MIRROR))
mirror->SetGoState(GO_STATE_ACTIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (Creature* arthas = ObjectAccessor::GetCreature(*me, _arthasGUID))
arthas->DespawnOrUnsummon();
_arthasGUID.Clear();
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index 6503d206d70..a09ff4c3684 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -169,7 +169,7 @@ struct boss_ymiron : public BossAI
{
DoCast(ancestor, SPELL_CHANNEL_YMIRON_TO_SPIRIT);
ancestor->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true);
- ancestor->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
+ ancestor->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
ancestor->SetDisableGravity(true);
ActiveAncestorGUID = ancestor->GetGUID();
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 341c59b98b2..546c43245b9 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -241,7 +241,7 @@ struct npc_ichor_globule : public ScriptedAI
if (spellInfo->Id == SPELL_WATER_GLOBULE_VISUAL)
{
DoCast(me, SPELL_WATER_GLOBULE_TRANSFORM);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->GetMotionMaster()->MoveFollow(unitCaster, 0.0f, 0.0f);
}
}
@@ -291,14 +291,14 @@ class spell_ichoron_drained : public AuraScript
void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- GetTarget()->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ GetTarget()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
}
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ GetTarget()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
if (UnitAI* ai = GetTarget()->GetAI())
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 23f721ab8ac..1636edf75f7 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -369,7 +369,7 @@ struct npc_sinclari_vh : public ScriptedAI
if (Creature* summon = me->SummonCreature(NPC_TELEPORTATION_PORTAL_INTRO, PortalIntroPositions[i], TEMPSUMMON_MANUAL_DESPAWN))
summon->AI()->SetData(DATA_PORTAL_LOCATION, i);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
std::list<Creature*> guardList;
me->GetCreatureListWithEntryInGrid(guardList, NPC_VIOLET_HOLD_GUARD, 100.0f);
@@ -407,7 +407,7 @@ struct npc_sinclari_vh : public ScriptedAI
{
if (menuId == GOSSIP_MENU_START_ENCOUNTER && gossipListId == 0)
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_instance->SetData(DATA_MAIN_EVENT_STATE, SPECIAL);
ScheduleIntro();
player->PlayerTalkClass->SendCloseGossip();
@@ -512,7 +512,7 @@ struct npc_sinclari_vh : public ScriptedAI
break;
case 9:
// We should teleport inside if event is in progress with GOSSIP_MENU_SEND_ME_IN
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
default:
break;
@@ -529,7 +529,7 @@ struct npc_sinclari_vh : public ScriptedAI
task.Schedule(Seconds(10), [this](TaskContext /*task*/)
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
});
});
}
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index 33eeeb378a4..191502bef00 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -431,7 +431,7 @@ public:
void Reset() override
{
me->RestoreFaction();
- me->RemoveStandFlags(UNIT_STAND_STATE_SIT);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
Initialize();
}
@@ -449,7 +449,7 @@ public:
if (Creature* arthas = me->SummonCreature(NPC_IMAGE_LICH_KING, 3730.313f, 3518.689f, 473.324f, 1.562f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2min))
{
arthasGUID = arthas->GetGUID();
- arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
arthas->SetReactState(REACT_PASSIVE);
arthas->SetWalk(true);
arthas->GetMotionMaster()->MovePoint(0, 3737.374756f, 3564.841309f, 477.433014f);
@@ -506,7 +506,7 @@ public:
{
talbot->UpdateEntry(NPC_PRINCE_VALANAR);
talbot->SetFaction(FACTION_MONSTER);
- talbot->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ talbot->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
talbot->SetReactState(REACT_PASSIVE);
}
phaseTimer = 5000;
@@ -546,7 +546,7 @@ public:
leryssaGUID = leryssa->GetGUID();
leryssa->SetWalk(false);
leryssa->SetReactState(REACT_PASSIVE);
- leryssa->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ leryssa->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
leryssa->GetMotionMaster()->MovePoint(0, 3741.969971f, 3571.439941f, 477.441010f);
}
phaseTimer = 2000;
@@ -604,10 +604,10 @@ public:
break;
case 14:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (talbot)
{
- talbot->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ talbot->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
talbot->SetReactState(REACT_AGGRESSIVE);
talbot->CastSpell(me, SPELL_SHADOW_BOLT, false);
}
@@ -622,7 +622,7 @@ public:
break;
case 16:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
phaseTimer = 20000;
++phase;
break;
@@ -634,7 +634,7 @@ public:
arlos->RemoveFromWorld();
if (talbot)
talbot->RemoveFromWorld();
- me->RemoveStandFlags(UNIT_STAND_STATE_SIT);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
SetEscortPaused(false);
phaseTimer = 0;
phase = 0;
@@ -908,7 +908,7 @@ public:
phase = 0;
phaseTimer = 0;
- creature->RemoveStandFlags(UNIT_STAND_STATE_SIT);
+ creature->SetStandState(UNIT_STAND_STATE_STAND);
}
bool bDone;
@@ -1334,8 +1334,8 @@ public:
npc_hidden_cultistAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
- uiEmoteState = creature->GetUInt32Value(UNIT_NPC_EMOTESTATE);
- uiNpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS);
+ uiEmoteState = creature->GetEmoteState();
+ uiNpcFlags = creature->GetNpcFlags();
}
void Initialize()
@@ -1346,8 +1346,8 @@ public:
uiPlayerGUID.Clear();
}
- uint32 uiEmoteState;
- uint32 uiNpcFlags;
+ Emote uiEmoteState;
+ NPCFlags uiNpcFlags;
uint32 uiEventTimer;
uint8 uiEventPhase;
@@ -1357,10 +1357,10 @@ public:
void Reset() override
{
if (uiEmoteState)
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, uiEmoteState);
+ me->SetEmoteState(uiEmoteState);
if (uiNpcFlags)
- me->SetUInt32Value(UNIT_NPC_FLAGS, uiNpcFlags);
+ me->ReplaceAllNpcFlags(uiNpcFlags);
Initialize();
@@ -1372,8 +1372,8 @@ public:
void DoAction(int32 /*iParam*/) override
{
me->StopMoving();
- me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
if (Player* player = ObjectAccessor::GetPlayer(*me, uiPlayerGUID))
me->SetFacingToObject(player);
uiEventTimer = 3000;
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index 4e4521512de..ffb3b9b4ece 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -395,7 +395,7 @@ public:
if (!tree || !player)
return;
- tree->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+ tree->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
if (roll == 1) // friendly version
{
@@ -540,7 +540,7 @@ class npc_wyrmrest_defender : public CreatureScript
case SPELL_WYRMREST_DEFENDER_MOUNT:
Talk(WHISPER_MOUNTED, me->GetCharmerOrOwner());
me->SetImmuneToAll(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
break;
// Both below are for checking low hp warning
case SPELL_DEFENDER_ON_LOW_HEALTH_EMOTE:
@@ -568,7 +568,7 @@ class npc_wyrmrest_defender : public CreatureScript
void OnCharmed(bool /*apply*/) override
{
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
};
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index fb3e5729603..5488dbe6a2f 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -373,7 +373,7 @@ public:
{
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->SetImmuneToPC(true);
- me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
+ me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
}
_phase = 0;
}
@@ -418,7 +418,7 @@ public:
{
if (me->FindNearestCreature(NPC_TALLHORN_STAG, 0.2f))
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING);
}
else
_events.ScheduleEvent(EVENT_WOODSMAN_1, 0s);
@@ -433,11 +433,11 @@ public:
switch (eventId)
{
case EVENT_WOODSMAN_1:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_LOOT);
+ me->SetEmoteState(EMOTE_STATE_LOOT);
_events.ScheduleEvent(EVENT_WOODSMAN_2, 3s);
break;
case EVENT_WOODSMAN_2:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
+ me->SetEmoteState(EMOTE_ONESHOT_ATTACK1H);
_events.ScheduleEvent(EVENT_WOODSMAN_1, 4s);
break;
default:
@@ -577,7 +577,7 @@ public:
{
_playerGUID.Clear();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(false);
me->SetReactState(REACT_AGGRESSIVE);
}
@@ -627,7 +627,7 @@ public:
{
if (spellInfo->Id == SPELL_SMOKE_BOMB && caster->GetTypeId() == TYPEID_PLAYER)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToPC(true);
me->SetReactState(REACT_PASSIVE);
me->CombatStop(false);
@@ -702,7 +702,7 @@ public:
{
Initialize();
if (me->GetEntry() == NPC_LAKE_FROG_QUEST)
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void UpdateAI(uint32 diff) override
@@ -727,11 +727,11 @@ public:
_events.ScheduleEvent(EVENT_LAKEFROG_3, 3s);
break;
case EVENT_LAKEFROG_3:
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_events.ScheduleEvent(EVENT_LAKEFROG_4, 25s);
break;
case EVENT_LAKEFROG_4:
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_events.ScheduleEvent(EVENT_LAKEFROG_5, 2s);
break;
case EVENT_LAKEFROG_5:
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index 095d0d88a6f..db489e63bac 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -370,7 +370,7 @@ public:
case EVENT_SCRIPT_1:
if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
Talk(SAY_BRANN_1, player);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
if (Creature* voice = me->SummonCreature(NPC_A_DISTANT_VOICE, 7863.43f, -1396.585f, 1538.076f, 2.949606f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 49s))
voiceGUID = voice->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_2, 4s);
@@ -381,11 +381,11 @@ public:
events.ScheduleEvent(EVENT_SCRIPT_3, 6s);
break;
case EVENT_SCRIPT_3:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_WORK_MINING);
+ me->SetEmoteState(EMOTE_STATE_WORK_MINING);
events.ScheduleEvent(EVENT_SCRIPT_4, 6s);
break;
case EVENT_SCRIPT_4:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
{
voice->CastSpell(voice, SPELL_RESURRECTION);
@@ -674,7 +674,7 @@ class npc_wild_wyrm : public CreatureScript
me->RemoveAurasDueToSpell(SPELL_JAWS_OF_DEATH_PERIODIC);
me->RemoveAurasDueToSpell(SPELL_PRY_JAWS_OPEN);
- me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
+ me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
me->GetMotionMaster()->MoveFall(POINT_FALL);
});
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index b93adb89af6..e0d3c4ef9aa 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -56,7 +56,7 @@ public:
void Reset() override
{
_rageclawGUID.Clear();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
float x, y, z;
me->GetClosePoint(x, y, z, me->GetCombatReach() / 3, 0.1f);
@@ -234,8 +234,8 @@ public:
void Reset() override
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
+ me->SetEmoteState(EMOTE_STATE_COWER);
Initialize();
}
@@ -248,8 +248,8 @@ public:
switch (eventId)
{
case EVENT_RECRUIT_1:
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
Talk(SAY_RECRUIT);
_events.ScheduleEvent(EVENT_RECRUIT_2, 3s);
break;
@@ -473,12 +473,12 @@ public:
{
case EVENT_TURN_TO_POT:
me->SetFacingTo(6.230825f);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING_NO_SHEATHE);
+ me->SetEmoteState(EMOTE_STATE_USE_STANDING_NO_SHEATHE);
_events.ScheduleEvent(EVENT_TURN_BACK, 11s);
break;
case EVENT_TURN_BACK:
me->SetFacingTo(4.886922f);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ me->SetEmoteState(EMOTE_STATE_NONE);
_events.ScheduleEvent(EVENT_TURN_TO_POT, 25s, 41s);
break;
case EVENT_EASY_123:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 1b51533af3a..b3e1ff47dc2 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -595,7 +595,7 @@ struct boss_illidan_stormrage : public BossAI
{
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
me->SetDisableGravity(true);
DoPlaySoundToSet(me, ILLIDAN_TAKEOFF_SOUND_ID);
@@ -625,7 +625,7 @@ struct boss_illidan_stormrage : public BossAI
summons.DoAction(ACTION_START_PHASE_4, EntryCheckPredicate(NPC_PARASITIC_SHADOWFIEND));
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
events.ScheduleEvent(EVENT_SHADOW_PRISON_TEXT, Milliseconds(500), GROUP_PHASE_ALL);
break;
case ACTION_ILLIDAN_CAGED:
@@ -638,7 +638,7 @@ struct boss_illidan_stormrage : public BossAI
events.Reset();
specialEvents.Reset();
DoCastSelf(SPELL_DEATH, true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
events.ScheduleEvent(EVENT_DEFEATED_TEXT, 4s);
break;
default:
@@ -648,7 +648,7 @@ struct boss_illidan_stormrage : public BossAI
void JustDied(Unit* /*killer*/) override
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
instance->SetBossState(DATA_ILLIDAN_STORMRAGE, DONE);
events.Reset();
}
@@ -932,7 +932,7 @@ struct boss_illidan_stormrage : public BossAI
events.ScheduleEvent(EVENT_RESUME_COMBAT, Seconds(3), GROUP_PHASE_ALL);
break;
case EVENT_RESUME_COMBAT:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
ScheduleEvents(GROUP_PHASE_3, GROUP_PHASE_3);
if (GameObject* musicController = instance->GetGameObject(DATA_ILLIDAN_MUSIC_CONTROLLER))
@@ -996,7 +996,7 @@ struct boss_illidan_stormrage : public BossAI
events.ScheduleEvent(EVENT_RESUME_COMBAT_PHASE_4, Seconds(13), GROUP_PHASE_ALL);
break;
case EVENT_RESUME_COMBAT_PHASE_4:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetReactState(REACT_AGGRESSIVE);
ScheduleEvents(GROUP_PHASE_4, GROUP_PHASE_4);
summons.DoAction(ACTION_RESUME_COMBAT, EntryCheckPredicate(NPC_PARASITIC_SHADOWFIEND));
@@ -1070,7 +1070,7 @@ struct npc_akama_illidan : public ScriptedAI
{
_instance->SetData(DATA_AKAMA, AKAMA_FIGHT);
me->GetMotionMaster()->MoveAlongSplineChain(POINT_STAIRS, SPLINE_STAIRS, false);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE))
illidan->AI()->DoAction(ACTION_INTRO_DONE);
CloseGossipMenuFor(player);
@@ -1080,7 +1080,7 @@ struct npc_akama_illidan : public ScriptedAI
{
_events.SetPhase(PHASE_INTRO);
me->GetMotionMaster()->MoveAlongSplineChain(POINT_FACE_ILLIDAN, SPLINE_FACE_ILLIDAN, false);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
CloseGossipMenuFor(player);
}
return false;
@@ -1105,12 +1105,12 @@ struct npc_akama_illidan : public ScriptedAI
if (summon->GetEntry() == NPC_SPIRIT_OF_UDALO)
{
_spiritOfUdaloGUID = summon->GetGUID();
- summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ summon->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
else if (summon->GetEntry() == NPC_SPIRIT_OF_OLUM)
{
_spiritOfOlumGUID = summon->GetGUID();
- summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ summon->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
}
@@ -1120,7 +1120,7 @@ struct npc_akama_illidan : public ScriptedAI
{
case ACTION_ACTIVE_AKAMA_INTRO:
_events.SetPhase(PHASE_INTRO);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_events.SetPhase(PHASE_INTRO);
_events.ScheduleEvent(EVENT_TELEPORT, 1s);
_events.ScheduleEvent(EVENT_MOVE_TO_ILLIDARI_ROOM, Seconds(1) + Milliseconds(500));
@@ -1165,7 +1165,7 @@ struct npc_akama_illidan : public ScriptedAI
{
case POINT_ILLIDARI_COUNCIL:
Talk(SAY_AKAMA_FINISH);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
case POINT_STAIRS:
ChangeOrientation(6.265732f);
@@ -1174,7 +1174,7 @@ struct npc_akama_illidan : public ScriptedAI
case POINT_ILLIDAN_ROOM:
ChangeOrientation(2.129302f);
Talk(SAY_AKAMA_BETRAYER);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
case POINT_FACE_ILLIDAN:
ChangeOrientation(3.140537f);
@@ -1301,7 +1301,7 @@ struct npc_akama_illidan : public ScriptedAI
break;
case EVENT_ROAR:
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
+ me->SetEmoteState(EMOTE_STATE_READY1H);
break;
case EVENT_CHANGE_ORIENTATION:
me->SetFacingTo(_orientation);
@@ -2305,12 +2305,12 @@ class spell_maiev_down : public AuraScript
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ GetTarget()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
GetTarget()->GetAI()->DoAction(ACTION_MAIEV_DOWN_FADE);
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 99cbaff68f6..093c0a346ee 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -190,7 +190,7 @@ struct boss_reliquary_of_souls : public BossAI
break;
case ACTION_START_COMBAT:
_inCombat = true;
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
events.ScheduleEvent(EVENT_SUBMERGE, 10s);
break;
default:
@@ -770,12 +770,12 @@ class spell_reliquary_of_souls_submerge : public AuraScript
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_SUBMERGED);
+ GetTarget()->SetStandState(UNIT_STAND_STATE_SUBMERGED);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
- GetTarget()->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND);
+ GetTarget()->SetStandState(UNIT_STAND_STATE_STAND);
}
void Register() override
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index 0480ffc9340..00fc7d84e5d 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -216,8 +216,8 @@ struct boss_shade_of_akama : public BossAI
_Reset();
Initialize();
me->SetImmuneToPC(true);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetEmoteState(EMOTE_STATE_STUN);
me->SetWalk(true);
events.ScheduleEvent(EVENT_INITIALIZE_SPAWNERS, 1s);
me->SummonCreatureGroup(SUMMON_GROUP_RESET);
@@ -240,7 +240,7 @@ struct boss_shade_of_akama : public BossAI
if (spellInfo->Id == SPELL_AKAMA_SOUL_CHANNEL)
{
events.ScheduleEvent(EVENT_START_CHANNELERS_AND_SPAWNERS, 1s);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
+ me->SetEmoteState(EMOTE_STATE_NONE);
events.ScheduleEvent(EVENT_EVADE_CHECK, 10s);
if (Creature* akama = instance->GetCreature(DATA_AKAMA_SHADE))
AttackStart(akama);
@@ -255,7 +255,7 @@ struct boss_shade_of_akama : public BossAI
if (_isInPhaseOne && motionType == CHASE_MOTION_TYPE)
{
_isInPhaseOne = false;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->SetWalk(false);
events.ScheduleEvent(EVENT_ADD_THREAT, Milliseconds(100));
@@ -317,7 +317,7 @@ struct boss_shade_of_akama : public BossAI
{
for (ObjectGuid summonGuid : summons)
if (Creature* channeler = ObjectAccessor::GetCreature(*me, summonGuid))
- channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ channeler->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
for (ObjectGuid spawnerGuid : _spawners)
if (Creature* spawner = ObjectAccessor::GetCreature(*me, spawnerGuid))
@@ -370,7 +370,7 @@ struct npc_akama_shade : public ScriptedAI
DoCastSelf(SPELL_STEALTH);
if (_instance->GetBossState(DATA_SHADE_OF_AKAMA) != DONE)
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
void JustSummoned(Creature* summon) override
@@ -458,7 +458,7 @@ struct npc_akama_shade : public ScriptedAI
{
case EVENT_SHADE_START:
_instance->SetBossState(DATA_SHADE_OF_AKAMA, IN_PROGRESS);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->RemoveAurasDueToSpell(SPELL_STEALTH);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(AKAMA_CHANNEL_WAYPOINT, AkamaWP[0], false);
@@ -565,7 +565,7 @@ struct npc_ashtongue_channeler : public PassiveAI
{
if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA))
{
- if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
DoCastSelf(SPELL_SHADE_SOUL_CHANNEL);
else
@@ -574,7 +574,7 @@ struct npc_ashtongue_channeler : public PassiveAI
channel.Repeat(Seconds(2));
});
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void UpdateAI(uint32 diff) override
@@ -692,7 +692,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI
{
if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA))
{
- if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
me->GetMotionMaster()->MovePoint(0, shade->GetPosition());
else if (Creature* akama = _instance->GetCreature(DATA_AKAMA_SHADE))
@@ -730,7 +730,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI
{
if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA))
{
- if (shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE))
+ if (shade->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE))
{
me->SetFacingToObject(shade);
DoCastSelf(SPELL_SHADE_SOUL_CHANNEL);
@@ -1068,7 +1068,7 @@ struct npc_ashtongue_broken : public ScriptedAI
Talk(SAY_BROKEN_HAIL);
break;
case ACTION_BROKEN_EMOTE:
- me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_KNEEL);
+ me->SetStandState(UNIT_STAND_STATE_KNEEL);
break;
default:
break;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
index 68c9e7de352..4e55d04aa2d 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
@@ -155,7 +155,7 @@ public:
Intro = false;
JustCreated = true;
CanAttack = false;
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped)
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped)
}
void Initialize()
@@ -325,7 +325,7 @@ public:
if (AggroTimer <= diff)
{
CanAttack = true;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
AggroTimer=19000;
}
else
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 8ad1f28e061..2d1543f14fd 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -251,8 +251,8 @@ public:
me->SetCanDualWield(true);
me->SetSpeedRate(MOVE_RUN, 2.0f);
me->SetDisplayId(MODEL_NIGHTELF);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
+ me->SetVirtualItem(0, 0);
+ me->SetVirtualItem(1, 0);
DoCast(me, SPELL_DUAL_WIELD, true);
me->SetCorpseDelay(1000*60*60);
instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, NOT_STARTED);
@@ -348,8 +348,8 @@ public:
me->SetDisplayId(MODEL_DEMON);
// and removing weapons
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
+ me->SetVirtualItem(0, 0);
+ me->SetVirtualItem(1, 0);
}
}
@@ -494,8 +494,8 @@ public:
me->RemoveAurasDueToSpell(SPELL_WHIRLWIND);
me->SetDisplayId(MODEL_DEMON);
Talk(SAY_SWITCH_TO_DEMON);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
+ me->SetVirtualItem(0, 0);
+ me->SetVirtualItem(1, 0);
DemonForm = true;
NeedThreatReset = true;
SwitchToDemon_Timer = 45000;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index 6605554046d..63044dcd387 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -155,7 +155,7 @@ public:
instance->SetData(DATA_STRANGE_POOL, NOT_STARTED);
DoCast(me, SPELL_SUBMERGE); // submerge anim
me->SetVisible(false); // we start invis under water, submerged
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
}
@@ -205,7 +205,7 @@ public:
else if (WaitTimer2 <= diff) // wait 500ms before emerge anim
{
me->RemoveAllAuras();
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
DoCast(me, SPELL_EMERGE, false);
WaitTimer2 = 60000; // never reached
WaitTimer = 3000;
@@ -218,7 +218,7 @@ public:
WaitTimer = 3000;
CanStartEvent = true; // fresh fished from pool
me->SetImmuneToPC(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
else
WaitTimer -= diff;
@@ -348,7 +348,7 @@ public:
me->InterruptNonMeleeSpells(false); // shouldn't be any
me->RemoveAllAuras();
me->SetImmuneToPC(false);
- me->RemoveFlag(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
DoCast(me, SPELL_EMERGE, true);
Spawned = false;
SpoutTimer = 3000; // directly cast Spout after emerging!
@@ -369,7 +369,7 @@ public:
if (!Spawned)
{
- me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ me->ReplaceAllUnitFlags(UNIT_FLAG_IMMUNE_TO_PC);
// spawn adds
for (uint8 i = 0; i < 9; ++i)
if (Creature* summoned = me->SummonCreature(i < 6 ? NPC_COILFANG_AMBUSHER : NPC_COILFANG_GUARDIAN, AddPos[i][0], AddPos[i][1], AddPos[i][2], 0, TEMPSUMMON_CORPSE_DESPAWN))
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
index 81c3cff2a78..c28fab71823 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
@@ -244,7 +244,7 @@ public:
if (me->IsWithinDistInMap(mekgineer, MAX_REPAIR_RANGE))
{
//are we already channeling? Doesn't work very well, find better check?
- if (!me->GetUInt32Value(UNIT_CHANNEL_SPELL))
+ if (!me->GetChannelSpellId())
{
//me->GetMotionMaster()->MovementExpired();
//me->GetMotionMaster()->MoveIdle();
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
index 8771e82965c..cb5504f4345 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
@@ -65,14 +65,14 @@ public:
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
//hack, due to really weird spell behaviour :(
if (instance->GetData(DATA_DISTILLER) == IN_PROGRESS)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
}
@@ -80,8 +80,8 @@ public:
void StartRageGen(Unit* /*caster*/)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
DoCast(me, SPELL_WARLORDS_RAGE_NAGA, true);
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
index 7dd08b00e33..8b2f00256fe 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
@@ -254,7 +254,7 @@ struct boss_ahune : public BossAI
me->RemoveAurasDueToSpell(SPELL_STAY_SUBMERGED);
DoCastSelf(SPELL_STAND);
DoCastSelf(SPELL_RESURFACE, true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s);
}
@@ -301,7 +301,7 @@ struct npc_frozen_core : public ScriptedAI
{
if (action == ACTION_AHUNE_RETREAT)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->RemoveAurasDueToSpell(SPELL_ICE_SPEAR_CONTROL_AURA);
_events.ScheduleEvent(EVENT_SYNCH_HEALTH, 3s, 0, PHASE_TWO);
@@ -310,7 +310,7 @@ struct npc_frozen_core : public ScriptedAI
{
_events.Reset();
DoCastSelf(SPELL_ICE_SPEAR_CONTROL_AURA);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(true);
}
}
diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
index d365c3e4f38..78c3e190c50 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
@@ -171,8 +171,8 @@ public:
Talk(SAY_ENRAGE);
DoCast(me, SPELL_DUAL_WIELD, true);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
- me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
+ me->SetVirtualItem(0, 0);
+ me->SetVirtualItem(1, 0);
}
if (Phase2)
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
index 65bd82695a3..ea12d36f5fd 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
@@ -119,7 +119,7 @@ class boss_broggok : public CreatureScript
break;
case ACTION_ACTIVATE_BROGGOK:
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
DoZoneInCombat();
events.ScheduleEvent(EVENT_SLIME_SPRAY, 10s);
events.ScheduleEvent(EVENT_POISON_BOLT, 7s);
@@ -127,7 +127,7 @@ class boss_broggok : public CreatureScript
break;
case ACTION_RESET_BROGGOK:
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
summons.DespawnAll();
instance->SetBossState(DATA_BROGGOK, NOT_STARTED);
if (GameObject * lever = instance->GetGameObject(DATA_BROGGOK_LEVER))
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
index 6a2679b105d..b29fb0598ca 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
@@ -95,7 +95,7 @@ class boss_kelidan_the_breaker : public CreatureScript
Initialize();
SummonChannelers();
me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToAll(true);
}
@@ -140,7 +140,7 @@ class boss_kelidan_the_breaker : public CreatureScript
return;
}
me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToAll(false);
if (killer)
AttackStart(killer);
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
index 8e2fb0d6ea5..50d89a71548 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
@@ -221,7 +221,7 @@ class instance_blood_furnace : public InstanceMapScript
{
if (!prisoner->IsAlive())
prisoner->Respawn(true);
- prisoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ prisoner->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
prisoner->SetImmuneToAll(true);
if (prisoner->IsAIEnabled())
prisoner->AI()->EnterEvadeMode();
@@ -313,7 +313,7 @@ class instance_blood_furnace : public InstanceMapScript
for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i)
if (Creature* prisoner = instance->GetCreature(*i))
{
- prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ prisoner->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
prisoner->SetImmuneToAll(false);
prisoner->AI()->DoZoneInCombat();
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index 3b550117739..a2901a05057 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -244,7 +244,7 @@ struct boss_magtheridon : public BossAI
CombatStart();
break;
case EVENT_RELEASED:
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
DoZoneInCombat();
events.SetPhase(PHASE_2);
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
index 453397b67e8..24529fbef8a 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
@@ -110,7 +110,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
void Reset() override
{
_Reset();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
Initialize();
}
@@ -146,7 +146,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
{
IsIntroEvent = false;
IsMainEvent = true;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
break;
default:
@@ -163,7 +163,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
PeonEngagedCount = 4;
PeonKilledCount = 4;
IsMainEvent = true;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void AttackStart(Unit* who) override
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
index 45d8f4d7852..bbd3f2c454d 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
@@ -223,8 +223,8 @@ class boss_warbringer_omrogg : public CreatureScript
if (summoned->GetEntry() == NPC_RIGHT_HEAD)
RightHeadGUID = summoned->GetGUID();
- //summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- //summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ //summoned->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ //summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
summoned->SetVisible(false);
}
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
index d65918dc117..27df691b571 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
@@ -158,10 +158,10 @@ struct boss_alar : public BossAI
me->SetDisplayId(me->GetNativeDisplayId());
me->SetSpeedRate(MOVE_RUN, DefaultMoveSpeedRate);
- //me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
- //me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
+ //me->SetBoundingRadius(10);
+ //me->SetCombatReach(10);
me->SetDisableGravity(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->setActive(false);
}
@@ -201,7 +201,7 @@ struct boss_alar : public BossAI
me->SetHealth(0);
me->InterruptNonMeleeSpells(true);
me->RemoveAllAuras();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->AttackStop();
me->SetTarget(ObjectGuid::Empty);
me->SetSpeedRate(MOVE_RUN, 5.0f);
@@ -287,7 +287,7 @@ struct boss_alar : public BossAI
me->SetStandState(UNIT_STAND_STATE_STAND);
me->SetFullHealth();
me->SetSpeedRate(MOVE_RUN, DefaultMoveSpeedRate);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
DoZoneInCombat();
DoCast(me, SPELL_REBIRTH, true);
MeltArmor_Timer = 60000;
@@ -327,8 +327,8 @@ struct boss_alar : public BossAI
case WE_SUMMON:
for (uint8 i = 0; i < 2; ++i)
DoSpawnCreature(CREATURE_EMBER_OF_ALAR, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s);
- me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetBoundingRadius(10);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisplayId(me->GetNativeDisplayId());
DoCast(me, SPELL_REBIRTH_2, true);
break;
@@ -411,8 +411,8 @@ struct boss_alar : public BossAI
{
me->AttackStop();
me->GetMotionMaster()->MovePoint(6, waypoint[4][0], waypoint[4][1], waypoint[4][2]);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 50);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetBoundingRadius(50);
WaitEvent = WE_METEOR;
WaitTimer = 0;
DiveBomb_Timer = 40000 + rand32() % 5000;
@@ -428,7 +428,7 @@ struct boss_alar : public BossAI
Creature* Summoned = me->SummonCreature(CREATURE_FLAME_PATCH_ALAR, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 2min);
if (Summoned)
{
- Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Summoned->SetObjectScale(Summoned->GetObjectScale() * 2.5f);
Summoned->SetDisplayId(11686);
Summoned->SetFaction(me->GetFaction());
@@ -507,7 +507,7 @@ struct npc_ember_of_alar : public ScriptedAI
damage = 0;
DoCast(me, SPELL_EMBER_BLAST, true);
me->SetDisplayId(11686);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
if (instance->GetBossState(DATA_ALAR) == IN_PROGRESS)
{
if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALAR)))
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
index a1ef60e417f..b08a2aa1d49 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
@@ -141,7 +141,7 @@ struct boss_high_astromancer_solarian : public BossAI
Initialize();
_Reset();
me->SetArmor(defaultarmor);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(true);
me->SetDisplayId(MODEL_HUMAN);
@@ -206,7 +206,7 @@ struct boss_high_astromancer_solarian : public BossAI
AppearDelay = false;
if (Phase == 2)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(false);
}
AppearDelay_Timer = 2s;
@@ -309,7 +309,7 @@ struct boss_high_astromancer_solarian : public BossAI
{
if (Creature* Summoned = me->SummonCreature(NPC_ASTROMANCER_SOLARIAN_SPOTLIGHT, Portals[i][0], Portals[i][1], Portals[i][2], CENTER_O, TEMPSUMMON_TIMED_DESPAWN, Phase2_Timer + Phase3_Timer + AppearDelay_Timer + 1700ms))
{
- Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ Summoned->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
Summoned->CastSpell(Summoned, SPELL_SPOTLIGHT, false);
}
}
@@ -353,7 +353,7 @@ struct boss_high_astromancer_solarian : public BossAI
if (j != i)
SummonMinion(NPC_SOLARIUM_PRIEST, Portals[j][0], Portals[j][1], Portals[j][2]);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(true);
Talk(SAY_SUMMON2);
@@ -388,7 +388,7 @@ struct boss_high_astromancer_solarian : public BossAI
{
Phase = 4;
//To make sure she wont be invisible or not selecatble
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetVisible(true);
Talk(SAY_VOIDA);
Talk(SAY_VOIDB);
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index e1694853c31..287837c796d 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -353,8 +353,8 @@ struct boss_kaelthas : public BossAI
{
Initialize();
DoAction(ACTION_PREPARE_ADVISORS);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
me->SetDisableGravity(false);
me->SetTarget(ObjectGuid::Empty);
me->SetObjectScale(1.0f);
@@ -383,7 +383,7 @@ struct boss_kaelthas : public BossAI
{
case ACTION_START_ENCOUNTER:
Talk(SAY_INTRO);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
_advisorGuid[ADVISOR_THALADRED] = instance->GetGuidData(DATA_THALADRED);
_advisorGuid[ADVISOR_SANGUINAR] = instance->GetGuidData(DATA_SANGUINAR);
@@ -400,7 +400,7 @@ struct boss_kaelthas : public BossAI
if (Creature* creature = ObjectAccessor::GetCreature(*me, _advisorGuid[i]))
{
creature->Respawn(true);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->AI()->EnterEvadeMode();
}
}
@@ -502,7 +502,7 @@ struct boss_kaelthas : public BossAI
case POINT_TRANSITION_CENTER_ASCENDING:
me->SetFacingTo(float(M_PI));
Talk(SAY_PHASE5_NUTS);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetDisableGravity(true);
//me->SetHover(true); -- Set in sniffs, but breaks his visual.
events.ScheduleEvent(EVENT_TRANSITION_2, 2s);
@@ -521,7 +521,7 @@ struct boss_kaelthas : public BossAI
case POINT_END_TRANSITION:
me->SetReactState(REACT_AGGRESSIVE);
me->InterruptNonMeleeSpells(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->RemoveAurasDueToSpell(SPELL_FULLPOWER);
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0))
@@ -575,13 +575,13 @@ struct boss_kaelthas : public BossAI
switch (eventId)
{
case EVENT_START_ENCOUNTER:
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_PACIFIED);
DoAction(ACTION_ACTIVE_ADVISOR);
break;
case EVENT_ACTIVE_ADVISOR:
if (Creature* advisor = ObjectAccessor::GetCreature(*me, _advisorGuid[_advisorCounter]))
{
- advisor->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ advisor->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
advisor->AI()->AttackStart(target);
@@ -603,7 +603,7 @@ struct boss_kaelthas : public BossAI
// Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael.
ResetThreatList();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_PACIFIED);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
AttackStart(target);
@@ -636,7 +636,7 @@ struct boss_kaelthas : public BossAI
events.ScheduleEvent(EVENT_SUMMON_PHOENIX, 45s, 60s, EVENT_GROUP_COMBAT, PHASE_COMBAT);
break;
case EVENT_END_TRANSITION:
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
DoCast(SPELL_FULLPOWER);
events.ScheduleEvent(EVENT_TRANSITION_4, 2s);
break;
@@ -701,7 +701,7 @@ struct boss_kaelthas : public BossAI
me->RemoveAurasDueToSpell(SPELL_NETHER_BEAM_VISUAL3);
DoCast(me, SPELL_KAEL_EXPLODES3, true);
DoCast(me, SPELL_KAEL_STUNNED); // Core doesn't handle the emote properly while flying.
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED);
+ me->SetEmoteState(EMOTE_STATE_DROWNED);
// Destroy the surrounding environment.
if (GameObject* statue = instance->GetGameObject(DATA_KAEL_STATUE_LEFT))
@@ -779,8 +779,8 @@ struct advisorbase_ai : public ScriptedAI
Initialize();
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
//reset encounter
if (instance->GetBossState(DATA_KAELTHAS) == IN_PROGRESS)
@@ -790,7 +790,7 @@ struct advisorbase_ai : public ScriptedAI
void MoveInLineOfSight(Unit* who) override
{
- if (!who || _inFakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (!who || _inFakeDeath || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -798,7 +798,7 @@ struct advisorbase_ai : public ScriptedAI
void AttackStart(Unit* who) override
{
- if (!who || _inFakeDeath || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (!who || _inFakeDeath || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::AttackStart(who);
@@ -809,7 +809,7 @@ struct advisorbase_ai : public ScriptedAI
if (spellInfo->Id == SPELL_RESSURECTION)
{
_hasRessurrected = true;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
me->SetStandState(UNIT_STAND_STATE_STAND);
events.ScheduleEvent(EVENT_DELAYED_RESSURECTION, 2s);
}
@@ -829,7 +829,7 @@ struct advisorbase_ai : public ScriptedAI
me->RemoveAllAurasOnDeath();
me->ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_STUNNED);
me->SetTarget(ObjectGuid::Empty);
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->GetMotionMaster()->Clear();
@@ -1059,7 +1059,7 @@ struct boss_grand_astromancer_capernian : public advisorbase_ai
void AttackStart(Unit* who) override
{
- if (!who || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (!who || me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
if (me->Attack(who, true))
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
index 2df55af0b02..765d655a6c9 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
@@ -289,7 +289,7 @@ struct npc_warden_mellichar : public ScriptedAI
{
Initialize();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
DoCast(me, SPELL_TARGET_OMEGA);
instance->SetBossState(DATA_HARBINGER_SKYRISS, NOT_STARTED);
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
index da3ede6991c..df75ec83c98 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
@@ -274,7 +274,7 @@ struct boss_harbinger_skyriss_illusion : public ScriptedAI
void Reset() override
{
me->SetImmuneToPC(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
}
void JustEngagedWith(Unit* /*who*/) override { }
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 0c5174d2983..9a13dc64f3e 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -109,7 +109,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
- if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
+ if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -143,7 +143,7 @@ public:
if (me->GetEntry() == ENTRY_NIHIL)
{
Talk(SAY_NIHIL_INTERRUPT);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
IsNihil = false;
}
@@ -152,7 +152,7 @@ public:
if (entry_list[cid] == ENTRY_NIHIL)
{
EnterEvadeMode();
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
IsNihil = true;
}
else
@@ -186,7 +186,7 @@ public:
++NihilSpeech_Phase;
break;
case 4:
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
//take off to location above
me->GetMotionMaster()->MovePoint(0, me->GetPositionX()+50.0f, me->GetPositionY(), me->GetPositionZ()+50.0f);
++NihilSpeech_Phase;
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index ff299ede68a..f17ef0bfaa0 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -271,8 +271,8 @@ public:
Initialize();
playerGUID.Clear();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
@@ -284,7 +284,7 @@ public:
player->PlayerTalkClass->SendCloseGossip();
me->AI()->Talk(SAY_BARADA_1);
me->AI()->DoAction(ACTION_START_EVENT);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
break;
default:
break;
@@ -305,7 +305,7 @@ public:
me->GetMotionMaster()->MovePoint(0, exorcismPos[1]);
Talk(SAY_BARADA_2);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ me->SetUnitFlag(UNIT_FLAG_PACIFIED);
}
}
@@ -485,7 +485,7 @@ public:
}
me->RemoveAura(SPELL_BARADAS_COMMAND);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
+ me->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
Talk(SAY_BARADA_8);
me->GetMotionMaster()->MoveTargetedHome();
@@ -541,7 +541,7 @@ public:
{
me->Dismount();
me->SetFacingToObject(player);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
_playerGUID = player->GetGUID();
_events.ScheduleEvent(EVENT_TALK, 2s);
}
@@ -549,8 +549,8 @@ public:
void Reset() override
{
me->RestoreFaction();
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetImmuneToPC(true);
}
@@ -565,7 +565,7 @@ public:
me->RemoveAllAuras();
me->CombatStop(true);
EngagementOver();
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->SetImmuneToPC(true);
Talk(SAY_DEFEATED);
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index e11bc51f69c..468b224da97 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -169,7 +169,7 @@ public:
{
if (spellInfo->Id == SPELL_SUMMON_INFERNAL)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->SetImmuneToPC(false);
me->RemoveAurasDueToSpell(SPELL_SPAWN_AND_PACIFY);
// handle by the spell below when such auras will be not removed after evade
@@ -782,7 +782,7 @@ public:
Initialize();
me->AddUnitState(UNIT_STATE_ROOT);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetTarget(ObjectGuid::Empty);
}
@@ -821,7 +821,7 @@ public:
case 6:
if (Player* AggroTarget = ObjectAccessor::GetPlayer(*me, AggroTargetGUID))
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->ClearUnitState(UNIT_STATE_ROOT);
float x, y, z;
diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp
index 0e26ff8618b..d3adc87be1f 100644
--- a/src/server/scripts/Pet/pet_dk.cpp
+++ b/src/server/scripts/Pet/pet_dk.cpp
@@ -92,7 +92,7 @@ struct npc_pet_dk_ebon_gargoyle : CasterAI
return;
// Stop Fighting
- me->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE, true);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
// Sanctuary
me->CastSpell(me, SPELL_DK_SANCTUARY, true);
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index 5f15fd45cff..9efa58725a9 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -958,7 +958,7 @@ private:
void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount)
{
// reduces all damage taken while Stunned in Moonkin Form
- if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) &&
+ if (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) &&
GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN))
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
@@ -1123,7 +1123,7 @@ private:
void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount)
{
// reduces all damage taken while Stunned in Cat Form
- if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) &&
+ if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) &&
GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN))
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 72b61c099ea..4f580c151c3 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -965,42 +965,42 @@ class spell_gen_clone_weapon_aura : public AuraScript
case SPELL_COPY_WEAPON_2_AURA:
case SPELL_COPY_WEAPON_3_AURA:
{
- prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID);
+ prevItem = target->GetVirtualItemId(0);
if (Player* player = caster->ToPlayer())
{
if (Item* mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND))
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, mainItem->GetEntry());
+ target->SetVirtualItem(0, mainItem->GetEntry());
}
else
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID));
+ target->SetVirtualItem(0, caster->GetVirtualItemId(0));
break;
}
case SPELL_COPY_OFFHAND_AURA:
case SPELL_COPY_OFFHAND_2_AURA:
{
- prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1);
+ prevItem = target->GetVirtualItemId(1);
if (Player* player = caster->ToPlayer())
{
if (Item* offItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND))
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, offItem->GetEntry());
+ target->SetVirtualItem(1, offItem->GetEntry());
}
else
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1));
+ target->SetVirtualItem(1, caster->GetVirtualItemId(1));
break;
}
case SPELL_COPY_RANGED_AURA:
{
- prevItem = target->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2);
+ prevItem = target->GetVirtualItemId(2);
if (Player* player = caster->ToPlayer())
{
if (Item* rangedItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_RANGED))
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, rangedItem->GetEntry());
+ target->SetVirtualItem(2, rangedItem->GetEntry());
}
else
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, caster->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2));
+ target->SetVirtualItem(2, caster->GetVirtualItemId(2));
break;
}
default:
@@ -1017,14 +1017,14 @@ class spell_gen_clone_weapon_aura : public AuraScript
case SPELL_COPY_WEAPON_AURA:
case SPELL_COPY_WEAPON_2_AURA:
case SPELL_COPY_WEAPON_3_AURA:
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, prevItem);
+ target->SetVirtualItem(0, prevItem);
break;
case SPELL_COPY_OFFHAND_AURA:
case SPELL_COPY_OFFHAND_2_AURA:
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, prevItem);
+ target->SetVirtualItem(1, prevItem);
break;
case SPELL_COPY_RANGED_AURA:
- target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, prevItem);
+ target->SetVirtualItem(2, prevItem);
break;
default:
break;
@@ -1178,10 +1178,10 @@ class spell_gen_dalaran_disguise : public SpellScript
switch (spellId)
{
case SPELL_SUNREAVER_DISGUISE_TRIGGER:
- spellId = gender ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_SUNREAVER_DISGUISE_FEMALE : SPELL_SUNREAVER_DISGUISE_MALE;
break;
case SPELL_SILVER_COVENANT_DISGUISE_TRIGGER:
- spellId = gender ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE;
+ spellId = gender == GENDER_FEMALE ? SPELL_SILVER_COVENANT_DISGUISE_FEMALE : SPELL_SILVER_COVENANT_DISGUISE_MALE;
break;
default:
break;
@@ -1664,9 +1664,9 @@ class spell_gen_feign_death_all_flags : public AuraScript
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
+ target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
if (Creature* creature = target->ToCreature())
creature->SetReactState(REACT_PASSIVE);
@@ -1675,9 +1675,9 @@ class spell_gen_feign_death_all_flags : public AuraScript
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
+ target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
if (Creature* creature = target->ToCreature())
creature->InitializeReactState();
@@ -1699,8 +1699,8 @@ class spell_gen_feign_death_no_dyn_flag : public AuraScript
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
+ target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
if (Creature* creature = target->ToCreature())
creature->SetReactState(REACT_PASSIVE);
@@ -1709,8 +1709,8 @@ class spell_gen_feign_death_no_dyn_flag : public AuraScript
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
+ target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
if (Creature* creature = target->ToCreature())
creature->InitializeReactState();
@@ -1731,8 +1731,8 @@ class spell_gen_feign_death_no_prevent_emotes : public AuraScript
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (Creature* creature = target->ToCreature())
creature->SetReactState(REACT_PASSIVE);
@@ -1741,8 +1741,8 @@ class spell_gen_feign_death_no_prevent_emotes : public AuraScript
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (Creature* creature = target->ToCreature())
creature->InitializeReactState();
@@ -2728,13 +2728,13 @@ class spell_gen_prevent_emotes : public AuraScript
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
}
void Register() override
@@ -3823,7 +3823,7 @@ class spell_gen_gm_freeze : public AuraScript
player->CombatStop();
if (player->IsNonMeleeSpellCast(true))
player->InterruptNonMeleeSpells(true);
- player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ player->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
// if player class = hunter || warlock remove pet if alive
if ((player->GetClass() == CLASS_HUNTER) || (player->GetClass() == CLASS_WARLOCK))
@@ -3846,7 +3846,7 @@ class spell_gen_gm_freeze : public AuraScript
{
// Reset player faction + allow combat + allow duels
player->SetFactionForRace(player->GetRace());
- player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ player->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
// save player
player->SaveToDB();
}
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index cc6c58aaee0..09b314d7ffd 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -691,7 +691,7 @@ class spell_hun_masters_call : public SpellScript
// Do a mini Spell::CheckCasterAuras on the pet, no other way of doing this
SpellCastResult result = SPELL_CAST_OK;
- uint32 const unitflag = pet->GetUInt32Value(UNIT_FIELD_FLAGS);
+ uint32 const unitflag = pet->GetUnitFlags();
if (pet->GetCharmerGUID())
result = SPELL_FAILED_CHARMED;
else if (unitflag & UNIT_FLAG_STUNNED)
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 9659956b249..1d82ae1040c 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -1258,8 +1258,8 @@ class spell_q13264_q13276_q13288_q13289_bloated_abom_feign_death : public AuraSc
void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* target = GetTarget();
- target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
if (Creature* creature = target->ToCreature())
creature->SetReactState(REACT_PASSIVE);
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 1b31bfe283a..bf46ebf0228 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -410,7 +410,7 @@ private:
void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
{
// reduces all damage taken while stun or fear
- if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_FLEEING) || (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN)))
+ if (GetTarget()->HasUnitFlag(UNIT_FLAG_FLEEING) || (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN)))
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index eff59f64966..74bed44d1d0 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -199,7 +199,7 @@ private:
void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
{
// reduces all damage taken while stun, fear or silence
- if (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED) || (GetTarget()->GetUInt32Value(UNIT_FIELD_FLAGS) & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN)))
+ if (GetTarget()->HasUnitFlag(UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED) || (GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1<<MECHANIC_STUN)))
absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct);
}
@@ -238,7 +238,7 @@ class spell_sha_astral_shift_visual_dummy : public AuraScript
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
// Periodic needed to remove visual on stun/fear/silence lost
- if (!GetTarget()->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED))
+ if (!GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_FLEEING | UNIT_FLAG_SILENCED))
Remove();
}
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index 67868cb00be..d3a1785537e 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -97,7 +97,7 @@ struct emerald_dragonAI : public WorldBossAI
void Reset() override
{
WorldBossAI::Reset();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_AGGRESSIVE);
DoCast(me, SPELL_MARK_OF_NATURE_AURA, true);
events.ScheduleEvent(EVENT_TAIL_SWEEP, 4s);
@@ -635,7 +635,7 @@ class boss_taerar : public CreatureScript
_shades += count;
DoCast(SPELL_SHADE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
++_stage;
@@ -672,7 +672,7 @@ class boss_taerar : public CreatureScript
{
_banished = false;
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_NON_ATTACKABLE);
me->RemoveAurasDueToSpell(SPELL_SHADE);
me->SetReactState(REACT_AGGRESSIVE);
}
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 55e6b4169c1..fe448d38124 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -228,7 +228,7 @@ public:
{
Initialize();
me->SetFaction(FACTION_PREY);
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
}
void JustEngagedWith(Unit* /*who*/) override { }
@@ -236,7 +236,7 @@ public:
void UpdateAI(uint32 diff) override
{
// Reset flags after a certain time has passed so that the next player has to start the 'event' again
- if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
+ if (me->HasNpcFlag(UNIT_NPC_FLAG_QUESTGIVER))
{
if (ResetFlagTimer <= diff)
{
@@ -258,7 +258,7 @@ public:
case TEXT_EMOTE_CHICKEN:
if (player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE && rand32() % 30 == 1)
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->SetFaction(FACTION_FRIENDLY);
Talk(player->GetTeam() == HORDE ? EMOTE_HELLO_H : EMOTE_HELLO_A);
}
@@ -266,7 +266,7 @@ public:
case TEXT_EMOTE_CHEER:
if (player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE)
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->SetFaction(FACTION_FRIENDLY);
Talk(EMOTE_CLUCK_TEXT);
}
@@ -312,7 +312,7 @@ struct npc_dancing_flames : public ScriptedAI
{
DoCastSelf(SPELL_SUMMON_BRAZIER, true);
DoCastSelf(SPELL_BRAZIER_DANCE, false);
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE);
+ me->SetEmoteState(EMOTE_STATE_DANCE);
float x, y, z;
me->GetPosition(x, y, z);
me->Relocate(x, y, z + 1.05f);
@@ -633,7 +633,7 @@ public:
void Reset() override
{
Initialize();
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void BeginEvent(Player* player)
@@ -658,7 +658,7 @@ public:
}
Event = true;
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
void PatientDied(Position const* point)
@@ -766,13 +766,13 @@ public:
Initialize();
//no select
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
//no regen health
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ me->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
//to make them lay with face down
- me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_DEAD);
+ me->SetStandState(UNIT_STAND_STATE_DEAD);
uint32 mobId = me->GetEntry();
@@ -807,13 +807,13 @@ public:
ENSURE_AI(npc_doctor::npc_doctorAI, doctor->AI())->PatientSaved(me, player, Coord);
//make uninteractible
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
//regen health
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
//stand up
- me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_STAND);
+ me->SetStandState(UNIT_STAND_STATE_STAND);
Talk(SAY_DOC);
@@ -843,10 +843,10 @@ public:
if (me->IsAlive() && me->GetHealth() <= 6)
{
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNINTERACTIBLE);
+ me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
+ me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
me->setDeathState(JUST_DIED);
- me->SetFlag(UNIT_DYNAMIC_FLAGS, 32);
+ me->SetDynamicFlag(32);
if (DoctorGUID)
if (Creature* doctor = ObjectAccessor::GetCreature((*me), DoctorGUID))
@@ -897,7 +897,7 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 diff)
if (Creature* Patient = me->SummonCreature(patientEntry, **point, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5s))
{
//303, this flag appear to be required for client side item->spell to work (TARGET_SINGLE_FRIEND)
- Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
+ Patient->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
Patients.push_back(Patient->GetGUID());
ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->DoctorGUID = me->GetGUID();
@@ -1103,7 +1103,7 @@ public:
void Reset() override
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
void JustEngagedWith(Unit* /*who*/) override
@@ -1521,14 +1521,14 @@ struct npc_brewfest_reveler_2 : ScriptedAI
}
else
{
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE);
+ me->SetEmoteState(EMOTE_STATE_DANCE);
_events.ScheduleEvent(EVENT_NEXT, 8s, 12s);
}
break;
case EVENT_NEXT:
// If dancing stop before next random state
- if (me->GetUInt32Value(UNIT_NPC_EMOTESTATE) == EMOTE_STATE_DANCE)
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
+ if (me->GetEmoteState() == EMOTE_STATE_DANCE)
+ me->SetEmoteState(EMOTE_ONESHOT_NONE);
// Random EVENT_EMOTE or EVENT_FACETO
if (roll_chance_i(50))
@@ -2111,7 +2111,7 @@ class npc_train_wrecker : public CreatureScript
_timer -= diff;
break;
}
- me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_DANCE);
+ me->SetEmoteState(EMOTE_ONESHOT_DANCE);
me->DespawnOrUnsummon(5s);
_nextAction = 0;
break;
@@ -2224,8 +2224,8 @@ public:
})
.Schedule(Seconds(1), [this](TaskContext context)
{
- if ((me->HasAura(SPELL_AURA_TIRED_S) || me->HasAura(SPELL_AURA_TIRED_G)) && me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR))
- me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR);
+ if ((me->HasAura(SPELL_AURA_TIRED_S) || me->HasAura(SPELL_AURA_TIRED_G)) && me->HasNpcFlag(UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR))
+ me->RemoveNpcFlag(UNIT_NPC_FLAG_BANKER | UNIT_NPC_FLAG_MAILBOX | UNIT_NPC_FLAG_VENDOR);
context.Repeat();
});
}
@@ -2236,7 +2236,7 @@ public:
{
case GOSSIP_OPTION_BANK:
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_BANKER);
+ me->SetNpcFlag(UNIT_NPC_FLAG_BANKER);
uint32 _bankAura = IsArgentSquire() ? SPELL_AURA_BANK_S : SPELL_AURA_BANK_G;
if (!me->HasAura(_bankAura))
DoCastSelf(_bankAura);
@@ -2247,7 +2247,7 @@ public:
}
case GOSSIP_OPTION_SHOP:
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR);
+ me->SetNpcFlag(UNIT_NPC_FLAG_VENDOR);
uint32 _shopAura = IsArgentSquire() ? SPELL_AURA_SHOP_S : SPELL_AURA_SHOP_G;
if (!me->HasAura(_shopAura))
DoCastSelf(_shopAura);
@@ -2258,7 +2258,7 @@ public:
}
case GOSSIP_OPTION_MAIL:
{
- me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_MAILBOX);
+ me->SetNpcFlag(UNIT_NPC_FLAG_MAILBOX);
player->GetSession()->SendShowMailBox(me->GetGUID());
uint32 _mailAura = IsArgentSquire() ? SPELL_AURA_POSTMAN_S : SPELL_AURA_POSTMAN_G;