aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp6
-rw-r--r--src/bindings/scripts/include/sc_creature.h23
-rw-r--r--src/bindings/scripts/include/sc_instance.h6
-rw-r--r--src/bindings/scripts/scripts/boss/boss_taerar.cpp2
-rw-r--r--src/bindings/scripts/scripts/boss/boss_ysondre.cpp2
-rw-r--r--src/bindings/scripts/scripts/examples/example_escort.cpp8
-rw-r--r--src/bindings/scripts/scripts/item/item_scripts.cpp8
-rw-r--r--src/bindings/scripts/scripts/npc/npc_escortAI.h4
-rw-r--r--src/bindings/scripts/scripts/npc/npcs_special.cpp30
-rw-r--r--src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp16
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/azshara/azshara.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp38
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp22
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp22
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp54
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp130
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp20
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp28
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp22
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp49
-rw-r--r--src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp38
-rw-r--r--src/bindings/scripts/scripts/zone/feralas/feralas.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp18
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp44
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp30
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp18
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp16
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp42
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp49
-rw-r--r--src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp22
-rw-r--r--src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp36
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp15
-rw-r--r--src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp13
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp40
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/undercity/undercity.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp16
-rw-r--r--src/bindings/scripts/scripts/zone/westfall/westfall.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp2
-rw-r--r--src/game/AccountMgr.cpp5
-rw-r--r--src/game/AccountMgr.h3
-rw-r--r--src/game/AchievementMgr.cpp22
-rw-r--r--src/game/AchievementMgr.h6
-rw-r--r--src/game/AddonHandler.cpp6
-rw-r--r--src/game/AddonHandler.h3
-rw-r--r--src/game/ArenaTeam.cpp3
-rw-r--r--src/game/ArenaTeamHandler.cpp11
-rw-r--r--src/game/AuctionHouseBot.cpp20
-rw-r--r--src/game/AuctionHouseBot.h5
-rw-r--r--src/game/AuctionHouseHandler.cpp14
-rw-r--r--src/game/AuctionHouseMgr.cpp52
-rw-r--r--src/game/AuctionHouseMgr.h3
-rw-r--r--src/game/Bag.cpp3
-rw-r--r--src/game/Bag.h2
-rw-r--r--src/game/BattleGround.cpp74
-rw-r--r--src/game/BattleGroundAA.cpp2
-rw-r--r--src/game/BattleGroundAB.cpp11
-rw-r--r--src/game/BattleGroundAV.cpp11
-rw-r--r--src/game/BattleGroundBE.cpp6
-rw-r--r--src/game/BattleGroundDS.cpp2
-rw-r--r--src/game/BattleGroundEY.cpp11
-rw-r--r--src/game/BattleGroundHandler.cpp17
-rw-r--r--src/game/BattleGroundMgr.cpp21
-rw-r--r--src/game/BattleGroundMgr.h1
-rw-r--r--src/game/BattleGroundNA.cpp6
-rw-r--r--src/game/BattleGroundRL.cpp7
-rw-r--r--src/game/BattleGroundRV.cpp2
-rw-r--r--src/game/BattleGroundSA.cpp2
-rw-r--r--src/game/BattleGroundWS.cpp8
-rw-r--r--src/game/CalendarHandler.cpp7
-rw-r--r--src/game/Cell.h4
-rw-r--r--src/game/CellImpl.h3
-rw-r--r--src/game/Channel.cpp2
-rw-r--r--src/game/Channel.h11
-rw-r--r--src/game/ChannelHandler.cpp4
-rw-r--r--src/game/ChannelMgr.h9
-rw-r--r--src/game/CharacterHandler.cpp31
-rw-r--r--src/game/Chat.cpp19
-rw-r--r--src/game/ChatHandler.cpp21
-rw-r--r--src/game/Corpse.cpp2
-rw-r--r--src/game/Creature.cpp43
-rw-r--r--src/game/Creature.h1
-rw-r--r--src/game/CreatureAI.cpp10
-rw-r--r--src/game/CreatureAI.h1
-rw-r--r--src/game/CreatureEventAI.cpp51
-rw-r--r--src/game/GameObject.cpp39
-rw-r--r--src/game/GameObject.h16
-rw-r--r--src/game/GossipDef.cpp10
-rw-r--r--src/game/GossipDef.h2
-rw-r--r--src/game/GridNotifiers.h52
-rw-r--r--src/game/Group.cpp2
-rw-r--r--src/game/ItemHandler.cpp8
-rw-r--r--src/game/Level1.cpp2
-rw-r--r--src/game/Level3.cpp15
-rw-r--r--src/game/LootMgr.cpp2
-rw-r--r--src/game/MovementHandler.cpp2
-rw-r--r--src/game/NPCHandler.cpp2
-rw-r--r--src/game/NullCreatureAI.h1
-rw-r--r--src/game/ObjectMgr.cpp24
-rw-r--r--src/game/Pet.cpp25
-rw-r--r--src/game/PetHandler.cpp7
-rw-r--r--src/game/Player.cpp99
-rw-r--r--src/game/Player.h6
-rw-r--r--src/game/QueryHandler.cpp28
-rw-r--r--src/game/QuestDef.cpp16
-rw-r--r--src/game/QuestDef.h2
-rw-r--r--src/game/Spell.cpp11
-rw-r--r--src/game/SpellAuras.cpp119
-rw-r--r--src/game/SpellAuras.h6
-rw-r--r--src/game/SpellEffects.cpp10
-rw-r--r--src/game/SpellMgr.cpp1
-rw-r--r--src/game/TemporarySummon.cpp4
-rw-r--r--src/game/Unit.cpp236
-rw-r--r--src/game/Unit.h11
-rw-r--r--src/game/Vehicle.cpp22
-rw-r--r--src/game/Wintergrasp.cpp146
-rw-r--r--src/game/Wintergrasp.h41
-rw-r--r--src/game/World.cpp3
-rw-r--r--src/game/World.h3
-rw-r--r--src/game/ZoneScript.h4
-rw-r--r--src/shared/Database/Database.h8
-rw-r--r--src/shared/vmap/CoordModelMapping.cpp1
-rw-r--r--src/shared/vmap/CoordModelMapping.h1
-rw-r--r--src/shared/vmap/DebugCmdLogger.cpp2
-rw-r--r--src/shared/vmap/TileAssembler.cpp2
-rw-r--r--src/trinitycore/CliRunnable.cpp13
-rw-r--r--src/trinitycore/Main.cpp12
-rw-r--r--src/trinitycore/Master.cpp17
-rw-r--r--src/trinitycore/RASocket.cpp7
-rw-r--r--src/trinitycore/RASocket.h3
-rw-r--r--src/trinitycore/WorldRunnable.cpp14
-rw-r--r--src/trinitycore/trinitycore.conf.dist11
-rw-r--r--src/trinityrealm/AuthSocket.cpp12
-rw-r--r--src/trinityrealm/AuthSocket.h5
-rw-r--r--src/trinityrealm/Main.cpp18
-rw-r--r--src/trinityrealm/RealmList.cpp5
293 files changed, 2040 insertions, 1589 deletions
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index b0ff9d48584..a1736689522 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -70,7 +70,7 @@ void SummonList::DespawnAll()
{
erase(begin());
summon->SetVisibility(VISIBILITY_OFF);
- if(summon->HasSummonMask(SUMMON_MASK_SUMMON) && !summon->isPet())
+ if(summon->isSummon() && !summon->isPet())
((TempSummon*)summon)->UnSummon();
else
summon->setDeathState(JUST_DIED);
@@ -491,7 +491,7 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float
return;
}
- ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
+ CAST_PLR(pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}
void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
@@ -712,7 +712,7 @@ void LoadOverridenDBCData()
SpellEntry *spellInfo;
for(uint32 i = 0; i < GetSpellStore()->GetNumRows(); ++i)
{
- spellInfo = (SpellEntry*)GetSpellStore()->LookupEntry(i);
+ spellInfo = GET_SPELL(i);
if(!spellInfo)
continue;
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 3eef1db1947..6e6a16a9f13 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -13,6 +13,19 @@
#include "CreatureAIImpl.h"
#include "InstanceData.h"
+#define USE_DYNAMIC_CAST
+#ifdef USE_DYNAMIC_CAST
+#define CAST_PLR(a) (dynamic_cast<Player*>(a))
+#define CAST_CRE(a) (dynamic_cast<Creature*>(a))
+#define CAST_AI(a,b) (dynamic_cast<a*>(b))
+#else
+#define CAST_PLR(a) (static_cast<Player*>(a))
+#define CAST_CRE(a) (static_cast<Creature*>(a))
+#define CAST_AI(a,b) (static_cast<a*>(b))
+#endif
+
+#define GET_SPELL(a) (const_cast<SpellEntry*>(GetSpellStore()->LookupEntry(a)))
+
class ScriptedInstance;
class SummonList : private std::list<uint64>
@@ -57,10 +70,10 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
void UpdateAI(const uint32);
//Called at creature death
- void JustDied(Unit*){}
+ void JustDied(Unit* who){}
//Called at creature killing another unit
- void KilledUnit(Unit*){}
+ void KilledUnit(Unit* who){}
// Called when the creature summon successfully other creature
void JustSummoned(Creature* ) {}
@@ -100,7 +113,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
void Reset() {}
//Called at creature aggro either by MoveInLOS or Attack Start
- void EnterCombat(Unit*) {}
+ void EnterCombat(Unit* who) {}
//*************
//AI Helper Functions
@@ -188,10 +201,10 @@ struct TRINITY_DLL_DECL Scripted_NoMovementAI : public ScriptedAI
Scripted_NoMovementAI(Creature* creature) : ScriptedAI(creature) {}
//Called if IsVisible(Unit *who) is true at each *who move
- //void MoveInLineOfSight(Unit *);
+ //void MoveInLineOfSight(Unit* who);
//Called at each attack of m_creature by any victim
- void AttackStart(Unit *);
+ void AttackStart(Unit* who);
};
struct TRINITY_DLL_DECL BossAI : public ScriptedAI
diff --git a/src/bindings/scripts/include/sc_instance.h b/src/bindings/scripts/include/sc_instance.h
index 0620e89af07..25593e05300 100644
--- a/src/bindings/scripts/include/sc_instance.h
+++ b/src/bindings/scripts/include/sc_instance.h
@@ -14,11 +14,7 @@
#define OUT_LOAD_INST_DATA_COMPLETE debug_log("TSCR: Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
#define OUT_LOAD_INST_DATA_FAIL error_log("TSCR: Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
-class TRINITY_DLL_DECL ScriptedInstance : public InstanceData
-{
- public:
- ScriptedInstance(Map *map) : InstanceData(map) {}
-};
+#define ScriptedInstance InstanceData
#endif
diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/boss/boss_taerar.cpp
index 73ca89fbcc8..d402a274cb6 100644
--- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp
+++ b/src/bindings/scripts/scripts/boss/boss_taerar.cpp
@@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_taerarAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(15302, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
index 0ec6d31ca05..baa31bb6a25 100644
--- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
+++ b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
@@ -88,7 +88,7 @@ struct TRINITY_DLL_DECL boss_ysondreAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(15260, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/examples/example_escort.cpp b/src/bindings/scripts/scripts/examples/example_escort.cpp
index 4d701ed0fdf..334a85be954 100644
--- a/src/bindings/scripts/scripts/examples/example_escort.cpp
+++ b/src/bindings/scripts/scripts/examples/example_escort.cpp
@@ -165,7 +165,7 @@ CreatureAI* GetAI_example_escort(Creature *_Creature)
testAI->AddWaypoint(3, 1231, -4419, 23, 5000);
testAI->AddWaypoint(4, 1208, -4392, 23, 5000);
- return (CreatureAI*)testAI;
+ return testAI;
}
bool GossipHello_example_escort(Player *player, Creature *_Creature)
@@ -186,7 +186,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID());
return true; // prevent mangos core handling
}
@@ -194,7 +194,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen
if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false, player->GetGUID());
return true; // prevent mangos core handling
}
@@ -202,7 +202,7 @@ bool GossipSelect_example_escort(Player *player, Creature *_Creature, uint32 sen
if (action == GOSSIP_ACTION_INFO_DEF+3)
{
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(false, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, true, false, player->GetGUID());
return true; // prevent mangos core handling
}
diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/item/item_scripts.cpp
index 4e1b1096ab8..f577d0fed9c 100644
--- a/src/bindings/scripts/scripts/item/item_scripts.cpp
+++ b/src/bindings/scripts/scripts/item/item_scripts.cpp
@@ -107,7 +107,7 @@ bool ItemUse_item_attuned_crystal_cores(Player *player, Item* _Item, SpellCastTa
targets.getUnitTarget()->GetEntry() == 24972 && targets.getUnitTarget()->isDead() &&
(player->GetQuestStatus(11524) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(11525) == QUEST_STATUS_INCOMPLETE) )
{
- ((Creature*)targets.getUnitTarget())->RemoveCorpse();
+ CAST_CRE(targets.getUnitTarget())->RemoveCorpse();
return false;
}
@@ -191,7 +191,7 @@ bool ItemUse_item_nether_wraith_beacon(Player *player, Item* _Item, SpellCastTar
Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()+20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000);
Nether = player->SummonCreature(22408,player->GetPositionX() ,player->GetPositionY()-20, player->GetPositionZ(), 0,TEMPSUMMON_TIMED_DESPAWN,180000);
if (Nether)
- ((CreatureAI*)Nether->AI())->AttackStart(player);
+ (Nether->AI())->AttackStart(player);
}
return false;
}
@@ -276,7 +276,7 @@ bool ItemUse_item_muiseks_vessel(Player *player, Item* _Item, SpellCastTargets c
if( uTarget && uTarget->GetTypeId()==TYPEID_UNIT && uTarget->isDead() &&
(uTarget->GetEntry()==cEntry || uTarget->GetEntry()==cEntry2 || uTarget->GetEntry()==cEntry3 || uTarget->GetEntry()==cEntry4) )
{
- ((Creature*)uTarget)->RemoveCorpse();
+ CAST_CRE(uTarget)->RemoveCorpse();
return false;
}
}
@@ -463,7 +463,7 @@ bool ItemUse_item_yehkinyas_bramble(Player *player, Item* _Item, SpellCastTarget
// cast only on corpse 5307 or 5308
(unit_target->GetEntry()==5307 || unit_target->GetEntry()==5308) )
{
- ((Creature*)unit_target)->RemoveCorpse(); // remove corpse for cancelling second use
+ CAST_CRE(unit_target)->RemoveCorpse(); // remove corpse for cancelling second use
return false; // all ok
}
}
diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.h b/src/bindings/scripts/scripts/npc/npc_escortAI.h
index 6defa4413e1..3431e84c6f8 100644
--- a/src/bindings/scripts/scripts/npc/npc_escortAI.h
+++ b/src/bindings/scripts/scripts/npc/npc_escortAI.h
@@ -38,9 +38,9 @@ struct TRINITY_DLL_DECL npc_escortAI : public ScriptedAI
npc_escortAI(Creature *c) : ScriptedAI(c), IsBeingEscorted(false), PlayerTimer(1000), MaxPlayerDistance(DEFAULT_MAX_PLAYER_DISTANCE), CanMelee(true), DespawnAtEnd(true), DespawnAtFar(true)
{}
- void AttackStart(Unit*);
+ void AttackStart(Unit* who);
- void MoveInLineOfSight(Unit*);
+ void MoveInLineOfSight(Unit* who);
void JustRespawned();
diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp
index 3a5b4d67bdf..3c0429ee4f3 100644
--- a/src/bindings/scripts/scripts/npc/npcs_special.cpp
+++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp
@@ -118,7 +118,7 @@ CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature)
bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest )
{
if(_Quest->GetQuestId() == QUEST_CLUCK)
- ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+ CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset();
return true;
}
@@ -126,7 +126,7 @@ bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Qu
bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest)
{
if(_Quest->GetQuestId() == QUEST_CLUCK)
- ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+ CAST_AI(npc_chicken_cluckAI, _Creature->AI())->Reset();
return true;
}
@@ -361,12 +361,12 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI
{
if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804)
{
- if((((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
+ if((CAST_PLR(caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (CAST_PLR(caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
{
if (Doctorguid)
{
if(Creature* Doctor = Unit::GetCreature(*m_creature, Doctorguid))
- ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord);
+ CAST_AI(npc_doctorAI, Doctor->AI())->PatientSaved(m_creature, CAST_PLR(caster), Coord);
}
}
@@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI
if (Doctorguid)
{
if(Creature* Doctor = Unit::GetCreature((*m_creature), Doctorguid))
- ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord);
+ CAST_AI(npc_doctorAI, Doctor->AI())->PatientDied(Coord);
}
}
}
@@ -561,10 +561,10 @@ void npc_doctorAI::UpdateAI(const uint32 diff)
Patient->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
Patients.push_back(Patient->GetGUID());
- ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID();
+ CAST_AI(npc_injured_patientAI, Patient->AI())->Doctorguid = m_creature->GetGUID();
if (Point)
- ((npc_injured_patientAI*)Patient->AI())->Coord = Point;
+ CAST_AI(npc_injured_patientAI, Patient->AI())->Coord = Point;
Coordinates.erase(itr);
}
@@ -577,7 +577,7 @@ void npc_doctorAI::UpdateAI(const uint32 diff)
bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest )
{
if ((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622))
- ((npc_doctorAI*)creature->AI())->BeginEvent(player);
+ CAST_AI(npc_doctorAI, creature->AI())->BeginEvent(player);
return true;
}
@@ -667,7 +667,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
switch(m_creature->GetEntry())
{
case ENTRY_SHAYA:
- if (((Player*)pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE)
+ if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE)
{
if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1)
{
@@ -684,7 +684,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
}
break;
case ENTRY_ROBERTS:
- if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE)
+ if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE)
{
if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1)
{
@@ -701,7 +701,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
}
break;
case ENTRY_DOLF:
- if (((Player*)pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE)
+ if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE)
{
if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1)
{
@@ -718,7 +718,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
}
break;
case ENTRY_KORJA:
- if (((Player*)pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE)
+ if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE)
{
if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1)
{
@@ -735,7 +735,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
}
break;
case ENTRY_DG_KEL:
- if (((Player*)pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE)
+ if (CAST_PLR(pCaster)->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE)
{
if (bIsHealed && !bCanRun && Spell->Id == SPELL_FORTITUDE_R1)
{
@@ -755,7 +755,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI
//give quest credit, not expect any special quest objectives
if (bCanRun)
- ((Player*)pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID());
+ CAST_PLR(pCaster)->TalkedToCreature(m_creature->GetEntry(),m_creature->GetGUID());
}
}
}
@@ -800,7 +800,7 @@ CreatureAI* GetAI_npc_garments_of_quests(Creature* pCreature)
tempAI->FillPointMovementListForCreature();
- return (CreatureAI*)tempAI;
+ return tempAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
index c404f0b7fd0..128583163ae 100644
--- a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
@@ -40,8 +40,8 @@ struct TRINITY_DLL_DECL npc_ravenholdtAI : public ScriptedAI
void MoveInLineOfSight(Unit *who)
{
if( who->GetTypeId() == TYPEID_PLAYER )
- if( ((Player*)who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE )
- ((Player*)who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() );
+ if( CAST_PLR(who)->GetQuestStatus(6681) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(who)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID() );
}
void EnterCombat(Unit* who) { }
diff --git a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp
index ba3b6aa8e9a..2e80e6e4c6e 100644
--- a/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp
+++ b/src/bindings/scripts/scripts/zone/arathi_highlands/arathi_highlands.cpp
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI
DoScriptText(SAY_PROGRESS_9, m_creature, player);
Completed = true;
if(player)
- ((Player*)player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_SUNKEN_TREASURE, m_creature);
break;
}
}
@@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL npc_professor_phizzlethorpeAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_SUNKEN_TREASURE);
+ CAST_PLR(player)->FailQuest(QUEST_SUNKEN_TREASURE);
}
}
@@ -117,7 +117,7 @@ bool QuestAccept_npc_professor_phizzlethorpe(Player* player, Creature* creature,
if (quest->GetQuestId() == QUEST_SUNKEN_TREASURE)
{
DoScriptText(SAY_PROGRESS_1, creature, player);
- ((npc_escortAI*)(creature->AI()))->Start(false, false, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(false, false, false, player->GetGUID());
creature->setFaction(113);
}
return true;
@@ -129,7 +129,7 @@ CreatureAI* GetAI_npc_professor_phizzlethorpeAI(Creature *_Creature)
professor_phizzlethorpeAI->FillPointMovementListForCreature();
- return (CreatureAI*)professor_phizzlethorpeAI;
+ return professor_phizzlethorpeAI;
}
void AddSC_arathi_highlands()
diff --git a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
index 76fdba757d2..73e89f8c7ca 100644
--- a/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
+++ b/src/bindings/scripts/scripts/zone/ashenvale_forest/ashenvale.cpp
@@ -82,7 +82,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI
DoScriptText(SAY_WIN, m_creature, player);
Completed = true;
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_TOREK_ASSULT,m_creature);
break;
case 21:
DoScriptText(SAY_END, m_creature, player);
@@ -114,7 +114,7 @@ struct TRINITY_DLL_DECL npc_torekAI : public npc_escortAI
if (PlayerGUID && !Completed)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_TOREK_ASSULT);
+ CAST_PLR(player)->FailQuest(QUEST_TOREK_ASSULT);
}
}
@@ -144,7 +144,7 @@ bool QuestAccept_npc_torek(Player* player, Creature* creature, Quest const* ques
if (quest->GetQuestId() == QUEST_TOREK_ASSULT)
{
//TODO: find companions, make them follow Torek, at any time (possibly done by mangos/database in future?)
- ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID());
DoScriptText(SAY_READY, creature, player);
creature->setFaction(113);
}
@@ -158,7 +158,7 @@ CreatureAI* GetAI_npc_torek(Creature* pCreature)
thisAI->FillPointMovementListForCreature();
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*####
@@ -200,7 +200,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI
case 21:{
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_FREEDOM_TO_RUUL,m_creature);
break; }
}
@@ -229,7 +229,7 @@ struct TRINITY_DLL_DECL npc_ruul_snowhoofAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_FREEDOM_TO_RUUL);
+ CAST_PLR(player)->FailQuest(QUEST_FREEDOM_TO_RUUL);
}
}
@@ -244,7 +244,7 @@ bool QuestAccept_npc_ruul_snowhoof(Player* player, Creature* creature, Quest con
if (quest->GetQuestId() == QUEST_FREEDOM_TO_RUUL)
{
creature->setFaction(113);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -255,7 +255,7 @@ CreatureAI* GetAI_npc_ruul_snowhoofAI(Creature *_Creature)
ruul_snowhoofAI->FillPointMovementListForCreature();
- return (CreatureAI*)ruul_snowhoofAI;
+ return ruul_snowhoofAI;
}
void AddSC_ashenvale()
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
index fb81cde9f6b..68a3f60a197 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_exarch_maladaarAI : public ScriptedAI
if (Unit *target = Unit::GetUnit(*m_creature,soulholder))
{
- ((mob_stolen_soulAI*)summoned->AI())->SetMyClass(soulclass);
+ CAST_AI(mob_stolen_soulAI, summoned->AI())->SetMyClass(soulclass);
summoned->AI()->AttackStart(target);
}
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
index d85dd7a5887..0869a6e72cd 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
@@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI
return;
}
if(!Shaffar->isInCombat())
- ((Creature*)Shaffar)->AI()->AttackStart(who);
+ CAST_CRE(Shaffar)->AI()->AttackStart(who);
}
void JustSummoned(Creature *summoned)
@@ -291,7 +291,7 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI
{
Unit *Shaffar = me->FindNearestCreature(ENTRY_SHAFFAR, 100);
if(Shaffar)
- ((boss_nexusprince_shaffarAI*)(((Creature*)Shaffar)->AI()))->RemoveBeaconFromList(m_creature);
+ CAST_AI(boss_nexusprince_shaffarAI, (CAST_CRE(Shaffar)->AI()))->RemoveBeaconFromList(m_creature);
}
void UpdateAI(const uint32 diff)
@@ -322,8 +322,6 @@ struct TRINITY_DLL_DECL mob_ethereal_beaconAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(true);
m_creature->CastSpell(m_creature,SPELL_ETHEREAL_APPRENTICE,true);
- if( m_creature->isPet() )
- ((Pet*)m_creature)->SetDuration(0);
KillSelf();
return;
}else Apprentice_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
index 28079c7a604..61758b12e6e 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
@@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_talon_king_ikissAI : public ScriptedAI
{
boss_talon_king_ikissAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
index 06a78c423da..324524c0b71 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public ScriptedAI
{
boss_ambassador_hellmawAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
index 6d683c09764..ebabd317940 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_blackheart_the_inciterAI : public ScriptedAI
{
boss_blackheart_the_inciterAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
index 52e5a3e8915..f99f9a130aa 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
@@ -92,7 +92,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI
{
if(sacrificed)
{
- SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS);
+ SpellEntry *spell = GET_SPELL(HeroicMode?H_SPELL_EMPOWERING_SHADOWS:SPELL_EMPOWERING_SHADOWS);
if( spell )
Vorpil->AddAura(new Aura(spell, 1, NULL, Vorpil, m_creature));
Vorpil->SetHealth(Vorpil->GetHealth()+Vorpil->GetMaxHealth()/25);
@@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
{
boss_grandmaster_vorpilAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
Intro = false;
}
@@ -203,7 +203,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
void JustSummoned(Creature *summoned)
{
if (summoned && summoned->GetEntry() == MOB_VOID_TRAVELER)
- ((mob_voidtravelerAI*)summoned->AI())->Vorpil = m_creature;
+ CAST_AI(mob_voidtravelerAI, summoned->AI())->Vorpil = m_creature;
}
void KilledUnit(Unit *victim)
diff --git a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
index f2c21be08c5..5f0d4bf03ff 100644
--- a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
+++ b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/boss_elder_nadox.cpp
@@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_elder_nadoxAI : public ScriptedAI
{
boss_elder_nadoxAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = c->GetMap()->IsHeroic();
}
@@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL mob_ahnkahar_nerubianAI : public ScriptedAI
{
mob_ahnkahar_nerubianAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Reset();
}
diff --git a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
index f6e0b263043..5223b6d93c3 100644
--- a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
+++ b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL mobs_spitelashesAI : public ScriptedAI
{
if( !spellhit &&
Hitter->GetTypeId() == TYPEID_PLAYER &&
- ((Player*)Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE &&
+ CAST_PLR(Hitter)->GetQuestStatus(9364) == QUEST_STATUS_INCOMPLETE &&
(Spellkind->Id==118 || Spellkind->Id== 12824 || Spellkind->Id== 12825 || Spellkind->Id== 12826) )
{
spellhit=true;
@@ -328,7 +328,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI
if(Grenade_Timer < diff)
{
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(player)
{
DoScriptText(SAY_RIZZLE_GRENADE, m_creature, player);
@@ -339,7 +339,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI
if(Check_Timer < diff)
{
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(!player)
{
Despawn();
@@ -374,7 +374,7 @@ struct TRINITY_DLL_DECL mob_rizzle_sprysprocketAI : public ScriptedAI
if (!who || PlayerGUID)
return;
- if(who->GetTypeId() == TYPEID_PLAYER && ((Player *)who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
+ if(who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
{
PlayerGUID = who->GetGUID();
DoScriptText(SAY_RIZZLE_START, m_creature);
@@ -417,8 +417,8 @@ bool GossipSelect_mob_rizzle_sprysprocket(Player *player, Creature *_Creature, u
{
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true);
- ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die_Timer = 3000;
- ((mob_rizzle_sprysprocketAI*)_Creature->AI())->Must_Die = true;
+ CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die_Timer = 3000;
+ CAST_AI(mob_rizzle_sprysprocketAI, _Creature->AI())->Must_Die = true;
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
index 5df22182c1f..320a1610827 100644
--- a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
+++ b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
@@ -280,7 +280,7 @@ bool GossipSelect_npc_engineer_spark_overgrind(Player *player, Creature *_Creatu
{
player->CLOSE_GOSSIP_MENU();
_Creature->setFaction(FACTION_HOSTILE);
- ((npc_engineer_spark_overgrindAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_engineer_spark_overgrindAI, _Creature->AI())->AttackStart(player);
}
return true;
}
@@ -401,7 +401,7 @@ bool QuestAccept_npc_magwin(Player* player, Creature* creature, Quest const* que
if (quest->GetQuestId() == QUEST_A_CRY_FOR_SAY_HELP)
{
creature->setFaction(113);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -412,7 +412,7 @@ CreatureAI* GetAI_npc_magwinAI(Creature* pCreature)
magwinAI->FillPointMovementListForCreature();
- return (CreatureAI*)magwinAI;
+ return magwinAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
index 4ae561d483c..f8b92d4f077 100644
--- a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
+++ b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
@@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI
{
if(!who || (!who->isAlive())) return;
- if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && ((Player*)who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress)
+ if (m_creature->IsWithinDistInMap(who, 10.0f) && (who->GetTypeId() == TYPEID_PLAYER) && CAST_PLR(who)->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE && !EventInProgress)
{
PlayerGUID = who->GetGUID();
EventInProgress = true;
@@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL npc_twiggy_flatheadAI : public ScriptedAI
pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pCreature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
pCreature->setFaction(14);
- ((CreatureAI*)pCreature->AI())->AttackStart(pWarrior);
+ (pCreature->AI())->AttackStart(pWarrior);
++Wave;
Wave_Timer = 20000;
}
@@ -447,7 +447,7 @@ struct TRINITY_DLL_DECL npc_wizzlecrank_shredderAI : public npc_escortAI
if(Mercenary)
{
DoScriptText(SAY_MERCENARY_4, Mercenary);
- ((Creature*)Mercenary)->AI()->AttackStart(m_creature);
+ CAST_CRE(Mercenary)->AI()->AttackStart(m_creature);
AttackStart(Mercenary);
}
}break;
@@ -499,7 +499,7 @@ bool QuestAccept_npc_wizzlecrank_shredder(Player* player, Creature* creature, Qu
if (quest->GetQuestId() == QUEST_ESCAPE)
{
creature->setFaction(FACTION_RATCHET);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -541,7 +541,7 @@ CreatureAI* GetAI_npc_wizzlecrank_shredderAI(Creature *_Creature)
thisAI->AddWaypoint(30, 1091.28, -2985.82, 91.74, 7000);
thisAI->AddWaypoint(31, 1091.28, -2985.82, 91.74, 3000);
- return (CreatureAI*)thisAI;
+ return thisAI;
}
void AddSC_the_barrens()
diff --git a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
index 738c58eab2e..aa390a229b1 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
@@ -37,7 +37,7 @@ EndContentData */
bool GossipHello_npc_spirit_of_olum(Player* player, Creature* _Creature)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if(pInstance && (pInstance->GetData(DATA_SUPREMUSEVENT) >= DONE) && (pInstance->GetData(DATA_HIGHWARLORDNAJENTUSEVENT) >= DONE))
player->ADD_GOSSIP_ITEM(0, GOSSIP_OLUM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
index e70f144d460..48405c1190c 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
@@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_gurtogg_bloodboilAI : public ScriptedAI
{
boss_gurtogg_bloodboilAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
index 97410c2b38e..e8b57f78e9c 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
@@ -366,10 +366,10 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI
{
boss_illidan_stormrageAI(Creature* c) : ScriptedAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHADOWFIEND_PASSIVE);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_SHADOWFIEND_PASSIVE);
if(TempSpell)
TempSpell->EffectApplyAuraName[0] = 4; // proc debuff, and summon infinite fiends
}
@@ -973,7 +973,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
{
npc_akama_illidanAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -1045,7 +1045,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
}
void EnterCombat(Unit *who) {}
- void MoveInLineOfSight(Unit *) {}
+ void MoveInLineOfSight(Unit* who) {}
void MovementInform(uint32 MovementType, uint32 Data) {Timer = 1;}
@@ -1086,8 +1086,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
Illidan->SetInFront(m_creature);
m_creature->GetMotionMaster()->MoveIdle();
Illidan->GetMotionMaster()->MoveIdle();
- ((boss_illidan_stormrageAI*)Illidan->AI())->AkamaGUID = m_creature->GetGUID();
- ((boss_illidan_stormrageAI*)Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE);
+ CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->AkamaGUID = m_creature->GetGUID();
+ CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->EnterPhase(PHASE_TALK_SEQUENCE);
}
}
@@ -1138,7 +1138,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
else if(Phase == PHASE_TALK)
{
if(GETCRE(Illidan, IllidanGUID))
- ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID());
+ CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID());
EnterEvadeMode();
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
WalkCount++;
@@ -1191,7 +1191,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
case 0:
if(GETCRE(Illidan, IllidanGUID))
{
- ((boss_illidan_stormrageAI*)Illidan->AI())->Timer[EVENT_TAUNT] += 30000;
+ CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->Timer[EVENT_TAUNT] += 30000;
Illidan->MonsterYell(SAY_AKAMA_MINION, LANG_UNIVERSAL, 0);
DoPlaySoundToSet(Illidan, SOUND_AKAMA_MINION);
}
@@ -1481,7 +1481,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI
{
if(GETCRE(Illidan, IllidanGUID))
{
- Unit* target = ((boss_illidan_stormrageAI*)Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0);
+ Unit* target = CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->SelectUnit(SELECT_TARGET_RANDOM, 0);
if(!target || !m_creature->IsWithinDistInMap(target, 80) || Illidan->IsWithinDistInMap(target, 20))
{
@@ -1560,7 +1560,7 @@ struct TRINITY_DLL_DECL boss_maievAI : public ScriptedAI
m_creature->SetVisibility(VISIBILITY_OFF);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
if(GETCRE(Illidan, IllidanGUID))
- ((boss_illidan_stormrageAI*)Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID());
+ CAST_AI(boss_illidan_stormrageAI, Illidan->AI())->DeleteFromThreatList(m_creature->GetGUID());
m_creature->AttackStop();
Timer[EVENT_MAIEV_STEALTH] = 60000; //reappear after 1 minute
MaxTimer = 1;
@@ -1577,7 +1577,7 @@ bool GossipSelect_npc_akama_at_illidan(Player *player, Creature *_Creature, uint
if(action == GOSSIP_ACTION_INFO_DEF) // Time to begin the Event
{
player->CLOSE_GOSSIP_MENU();
- ((npc_akama_illidanAI*)_Creature->AI())->EnterPhase(PHASE_CHANNEL);
+ CAST_AI(npc_akama_illidanAI, _Creature->AI())->EnterPhase(PHASE_CHANNEL);
}
return true;
}
@@ -1676,7 +1676,7 @@ bool GOHello_cage_trap(Player* plr, GameObject* go)
cell_lock->Visit(cell_lock, cSearcher, *(plr->GetMap()));
if(trigger)
- ((cage_trap_triggerAI*)trigger->AI())->Active = true;
+ CAST_AI(cage_trap_triggerAI, trigger->AI())->Active = true;
go->SetGoState(GO_STATE_ACTIVE);
return true;
}
@@ -1725,7 +1725,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI
{
mob_parasitic_shadowfiendAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -1776,7 +1776,7 @@ struct TRINITY_DLL_DECL mob_parasitic_shadowfiendAI : public ScriptedAI
if(CheckTimer < diff)
{
GETUNIT(Illidan, IllidanGUID);
- if(!Illidan || ((Creature*)Illidan)->IsInEvadeMode())
+ if(!Illidan || CAST_CRE(Illidan)->IsInEvadeMode())
{
m_creature->SetVisibility(VISIBILITY_OFF);
m_creature->setDeathState(JUST_DIED);
@@ -1812,9 +1812,9 @@ void boss_illidan_stormrageAI::Reset()
Akama->Respawn();
else
{
- ((npc_akama_illidanAI*)Akama->AI())->EnterEvadeMode();
+ CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterEvadeMode();
Akama->GetMotionMaster()->MoveTargetedHome();
- ((npc_akama_illidanAI*)Akama->AI())->Reset();
+ CAST_AI(npc_akama_illidanAI, Akama->AI())->Reset();
}
}
AkamaGUID = 0;
@@ -1877,7 +1877,7 @@ void boss_illidan_stormrageAI::JustSummoned(Creature* summon)
summon->SetVisibility(VISIBILITY_OFF); // Leave her invisible until she has to talk
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
MaievGUID = summon->GetGUID();
- ((boss_maievAI*)summon->AI())->GetIllidanGUID(m_creature->GetGUID());
+ CAST_AI(boss_maievAI, summon->AI())->GetIllidanGUID(m_creature->GetGUID());
summon->AI()->DoAction(PHASE_TALK_SEQUENCE);
}break;
case FLAME_OF_AZZINOTH:
@@ -1907,7 +1907,7 @@ void boss_illidan_stormrageAI::HandleTalkSequence()
{
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE);
m_creature->AddThreat(Akama, 100.0f);
- ((npc_akama_illidanAI*)Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN);
+ CAST_AI(npc_akama_illidanAI, Akama->AI())->EnterPhase(PHASE_FIGHT_ILLIDAN);
EnterPhase(PHASE_NORMAL);
}
break;
@@ -2026,7 +2026,7 @@ void boss_illidan_stormrageAI::SummonFlamesOfAzzinoth()
Flame->setFaction(m_creature->getFaction()); // Just in case the database has it as a different faction
Flame->SetMeleeDamageSchool(SPELL_SCHOOL_FIRE);
FlameGUID[i] = Flame->GetGUID(); // Record GUID in order to check if they're dead later on to move to the next phase
- ((flame_of_azzinothAI*)Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]);
+ CAST_AI(flame_of_azzinothAI, Flame->AI())->SetGlaiveGUID(GlaiveGUID[i]);
Glaive->CastSpell(Flame, SPELL_AZZINOTH_CHANNEL, false); // Glaives do some random Beam type channel on it.
}
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
index 0321ea6d9ad..ba3d5316e76 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
@@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_shahrazAI : public ScriptedAI
{
boss_shahrazAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
index 6bd777405ea..0c11e2a4106 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
@@ -120,7 +120,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI
{
boss_reliquary_of_soulsAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
EssenceGUID = 0;
}
@@ -178,7 +178,7 @@ struct TRINITY_DLL_DECL boss_reliquary_of_soulsAI : public ScriptedAI
if(!Soul) return false;
if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
{
- ((npc_enslaved_soulAI*)Soul->AI())->ReliquaryGUID = m_creature->GetGUID();
+ CAST_AI(npc_enslaved_soulAI, Soul->AI())->ReliquaryGUID = m_creature->GetGUID();
Soul->AI()->AttackStart(target);
}else EnterEvadeMode();
return true;
@@ -629,7 +629,7 @@ void npc_enslaved_soulAI::JustDied(Unit *killer)
{
Creature* Reliquary = (Unit::GetCreature((*m_creature), ReliquaryGUID));
if(Reliquary)
- ((boss_reliquary_of_soulsAI*)Reliquary->AI())->SoulDeathCount++;
+ CAST_AI(boss_reliquary_of_soulsAI, Reliquary->AI())->SoulDeathCount++;
}
DoCast(m_creature, SPELL_SOUL_RELEASE, true);
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
index ec876e4c7ac..587d9934a51 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
@@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI
{
boss_shade_of_akamaAI(Creature* c) : ScriptedAI(c), summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
AkamaGUID = pInstance ? pInstance->GetData64(DATA_AKAMA_SHADE) : 0;
m_creature->setActive(true);//if view distance is too low
m_creature->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true);
@@ -309,7 +309,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI
Creature* Sorcerer = m_creature->SummonCreature(CREATURE_SORCERER, X, Y, Z_SPAWN, 0, TEMPSUMMON_DEAD_DESPAWN, 0);
if(Sorcerer)
{
- ((mob_ashtongue_sorcererAI*)Sorcerer->AI())->ShadeGUID = m_creature->GetGUID();
+ CAST_AI(mob_ashtongue_sorcererAI, Sorcerer->AI())->ShadeGUID = m_creature->GetGUID();
Sorcerer->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
Sorcerer->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ());
Sorcerer->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID());
@@ -354,7 +354,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI
{
for(std::list<Creature*>::iterator itr = ChannelerList.begin(); itr != ChannelerList.end(); ++itr)
{
- ((mob_ashtongue_channelerAI*)(*itr)->AI())->ShadeGUID = m_creature->GetGUID();
+ CAST_AI(mob_ashtongue_channelerAI, (*itr)->AI())->ShadeGUID = m_creature->GetGUID();
Channelers.push_back((*itr)->GetGUID());
debug_log("TSCR: Shade of Akama Grid Search found channeler %u. Adding to list", (*itr)->GetGUID());
}
@@ -489,7 +489,7 @@ void mob_ashtongue_channelerAI::JustDied(Unit* killer)
{
Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID));
if(Shade && Shade->isAlive())
- ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount();
+ CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount();
else error_log("SD2 ERROR: Channeler dead but unable to increment DeathCount for Shade of Akama.");
}
@@ -497,7 +497,7 @@ void mob_ashtongue_sorcererAI::JustDied(Unit* killer)
{
Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID));
if(Shade && Shade->isAlive())
- ((boss_shade_of_akamaAI*)Shade->AI())->IncrementDeathCount(m_creature->GetGUID());
+ CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IncrementDeathCount(m_creature->GetGUID());
else error_log("SD2 ERROR: Sorcerer dead but unable to increment DeathCount for Shade of Akama.");
}
@@ -507,7 +507,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI
{
ShadeHasDied = false;
StartCombat = false;
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
ShadeGUID = pInstance ? pInstance->GetData64(DATA_SHADEOFAKAMA) : NOT_STARTED;
m_creature->setActive(true);
EventBegun = false;
@@ -572,8 +572,8 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI
pInstance->SetData(DATA_SHADEOFAKAMAEVENT, IN_PROGRESS);
// Prevent players from trying to restart event
m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- ((boss_shade_of_akamaAI*)Shade->AI())->SetAkamaGUID(m_creature->GetGUID());
- ((boss_shade_of_akamaAI*)Shade->AI())->SetSelectableChannelers();
+ CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetAkamaGUID(m_creature->GetGUID());
+ CAST_AI(boss_shade_of_akamaAI, Shade->AI())->SetSelectableChannelers();
Shade->AddThreat(m_creature, 1000000.0f);
m_creature->CombatStart(Shade);
Shade->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
@@ -621,7 +621,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI
HasYelledOnce = false;
Creature* Shade = Unit::GetCreature((*m_creature), ShadeGUID);
if(Shade && Shade->isAlive())
- ((boss_shade_of_akamaAI*)Shade->AI())->HasKilledAkama = true;
+ CAST_AI(boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true;
}
void UpdateAI(const uint32 diff)
@@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI
Creature* Shade = (Unit::GetCreature((*m_creature), ShadeGUID));
if(Shade && Shade->isAlive())
{
- if(((boss_shade_of_akamaAI*)Shade->AI())->IsBanished)
+ if(CAST_AI(boss_shade_of_akamaAI, Shade->AI())->IsBanished)
{
if(CastSoulRetrieveTimer < diff)
{
@@ -816,7 +816,7 @@ bool GossipSelect_npc_akama(Player *player, Creature *_Creature, uint32 sender,
if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
player->CLOSE_GOSSIP_MENU();
- ((npc_akamaAI*)_Creature->AI())->BeginEvent(player);
+ CAST_AI(npc_akamaAI, _Creature->AI())->BeginEvent(player);
}
return true;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
index 1994d580b8d..a5841cf86a6 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
@@ -67,7 +67,7 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI
{
boss_supremusAI(Creature *c) : ScriptedAI(c), summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
index 6c2a738647d..b79abe5e393 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
@@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI
{
boss_teron_gorefiendAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -338,7 +338,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI
Creature* control = m_creature->SummonCreature(CREATURE_GHOST, x, y, z, 0, TEMPSUMMON_TIMED_DESAWN, 30000);
if(control)
{
- ((Player*)Ghost)->Possess(control);
+ CAST_PLR(Ghost)->Possess(control);
Ghost->DealDamage(Ghost, Ghost->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL,
false);
}*/
@@ -352,7 +352,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI
{
Construct->CastSpell(Construct, SPELL_PASSIVE_SHADOWFORM, true);
SetThreatList(Construct); // Use same function as Doom Blossom to set Threat List.
- ((mob_shadowy_constructAI*)Construct->AI())->GhostGUID = GhostGUID;
+ CAST_AI(mob_shadowy_constructAI, Construct->AI())->GhostGUID = GhostGUID;
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1);
if(!target) // someone's trying to solo.
target = m_creature->getVictim();
@@ -430,7 +430,7 @@ struct TRINITY_DLL_DECL boss_teron_gorefiendAI : public ScriptedAI
DoomBlossom->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoomBlossom->setFaction(m_creature->getFaction());
DoomBlossom->AddThreat(target, 1.0f);
- ((mob_doom_blossomAI*)DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID());
+ CAST_AI(mob_doom_blossomAI, DoomBlossom->AI())->SetTeronGUID(m_creature->GetGUID());
target->CombatStart(DoomBlossom);
SetThreatList(DoomBlossom);
SummonDoomBlossomTimer = 35000;
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
index ee3cc90661a..3029231abd9 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
@@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
{
boss_najentusAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -195,9 +195,9 @@ struct TRINITY_DLL_DECL boss_najentusAI : public ScriptedAI
bool GOHello_go_najentus_spine(Player *player, GameObject* _GO)
{
- if(ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData())
+ if(ScriptedInstance* pInstance = _GO->GetInstanceData())
if(Creature* Najentus = Unit::GetCreature(*_GO, pInstance->GetData64(DATA_HIGHWARLORDNAJENTUS)))
- if(((boss_najentusAI*)Najentus->AI())->RemoveImpalingSpine())
+ if(CAST_AI(boss_najentusAI, Najentus->AI())->RemoveImpalingSpine())
{
player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true);
_GO->SetLootState(GO_NOT_READY);
diff --git a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
index 7478a235215..0c43ba57041 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
@@ -135,7 +135,7 @@ struct TRINITY_DLL_DECL mob_blood_elf_council_voice_triggerAI : public ScriptedA
// finds and stores the GUIDs for each Council member using instance data system.
void LoadCouncilGUIDs()
{
- if(ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()))
+ if(ScriptedInstance* pInstance = (m_creature->GetInstanceData()))
{
Council[0] = pInstance->GetData64(DATA_GATHIOSTHESHATTERER);
Council[1] = pInstance->GetData64(DATA_VERASDARKSHADOW);
@@ -192,7 +192,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI
{
mob_illidari_councilAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
for(uint8 i = 0; i < 4; ++i)
Council[i] = 0;
}
@@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI
// Start the event for the Voice Trigger
if(Creature* VoiceTrigger = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))))
{
- ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->LoadCouncilGUIDs();
- ((mob_blood_elf_council_voice_triggerAI*)VoiceTrigger->AI())->EventStarted = true;
+ CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs();
+ CAST_AI(mob_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true;
}
for(uint8 i = 0; i < 4; ++i)
@@ -272,7 +272,7 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI
{
Member = Unit::GetUnit((*m_creature), Council[i]);
if(Member && Member->isAlive())
- ((Creature*)Member)->AI()->AttackStart(target);
+ CAST_CRE(Member)->AI()->AttackStart(target);
}
}
@@ -348,7 +348,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI
{
boss_illidari_councilAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
for(uint8 i = 0; i < 4; ++i)
Council[i] = 0;
LoadedGUIDs = false;
@@ -366,7 +366,7 @@ struct TRINITY_DLL_DECL boss_illidari_councilAI : public ScriptedAI
{
Creature* Controller = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ILLIDARICOUNCIL)));
if(Controller)
- ((mob_illidari_councilAI*)Controller->AI())->StartEvent(who);
+ CAST_AI(mob_illidari_councilAI, Controller->AI())->StartEvent(who);
}
else
{
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
index dc8235f646e..135f63bc08c 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
@@ -67,7 +67,7 @@ uint32 RingBoss[]=
bool AreaTrigger_at_ring_of_law(Player *player, AreaTriggerEntry *at)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData());
+ ScriptedInstance* pInstance = (player->GetInstanceData());
if (pInstance)
{
@@ -91,7 +91,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI
{
npc_grimstoneAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
MobSpawnId = rand()%6;
}
@@ -310,7 +310,7 @@ CreatureAI* GetAI_npc_grimstone(Creature *_Creature)
Grimstone_AI->FillPointMovementListForCreature();
- return (CreatureAI*)Grimstone_AI;
+ return Grimstone_AI;
}
/*######
@@ -577,7 +577,7 @@ CreatureAI* GetAI_npc_dughal_stormwing(Creature *_Creature)
dughal_stormwingAI->AddWaypoint(1, 287.64,-87.01, -76.79,0);
dughal_stormwingAI->AddWaypoint(2, 354.63,-64.95, -67.53,0);
- return (CreatureAI*)dughal_stormwingAI;
+ return dughal_stormwingAI;
}
bool GossipHello_npc_dughal_stormwing(Player *player, Creature *_Creature)
{
@@ -594,7 +594,7 @@ bool GossipSelect_npc_dughal_stormwing(Player *player, Creature *_Creature, uint
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID());
_Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS);
}
@@ -622,7 +622,7 @@ struct TRINITY_DLL_DECL npc_marshal_windsorAI : public npc_escortAI
{
npc_marshal_windsorAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void WaypointReached(uint32 i)
@@ -742,7 +742,7 @@ CreatureAI* GetAI_npc_marshal_windsor(Creature *_Creature)
marshal_windsorAI->AddWaypoint(18, 403.61,-51.71, -63.92,1000);
marshal_windsorAI->AddWaypoint(19, 403.61,-51.71, -63.92,0);
- return (CreatureAI*)marshal_windsorAI;
+ return marshal_windsorAI;
}
bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest const *quest )
@@ -751,7 +751,7 @@ bool QuestAccept_npc_marshal_windsor(Player *player, Creature *creature, Quest c
{PlayerStart = player;
if( pInstance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED )
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
pInstance->SetData(DATA_QUEST_JAIL_BREAK,ENCOUNTER_STATE_IN_PROGRESS);
creature->setFaction(11);
}
@@ -854,13 +854,13 @@ struct TRINITY_DLL_DECL npc_marshal_reginald_windsorAI : public npc_escortAI
if( who->GetTypeId() == TYPEID_PLAYER )
{
- if( ((Player*)who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE )
{
float Radius = 10.0;
if( m_creature->IsWithinDistInMap(who, Radius) )
{
IsOnHold = false;
- ((npc_escortAI*)(m_creature->AI()))->Start(true, true, false, who->GetGUID());
+ Start(true, true, false, who->GetGUID());
}
}
}
@@ -969,7 +969,7 @@ CreatureAI* GetAI_npc_marshal_reginald_windsor(Creature *_Creature)
marshal_reginald_windsorAI->AddWaypoint(33, 452.45,29.85, -70.37,10000);
marshal_reginald_windsorAI->AddWaypoint(34, 451.27,31.85, -70.07,0);
- return (CreatureAI*)marshal_reginald_windsorAI;
+ return marshal_reginald_windsorAI;
}
*/
/*######
@@ -1041,7 +1041,7 @@ CreatureAI* GetAI_npc_tobias_seecher(Creature *_Creature)
tobias_seecherAI->AddWaypoint(3, 519.44, -217.02, -59.34);
tobias_seecherAI->AddWaypoint(4, 506.55, -153.49, -62.34);
- return (CreatureAI*)tobias_seecherAI;
+ return tobias_seecherAI;
}
bool GossipHello_npc_tobias_seecher(Player *player, Creature *_Creature)
@@ -1059,7 +1059,7 @@ bool GossipSelect_npc_tobias_seecher(Player *player, Creature *_Creature, uint32
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(false, false, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, true, player->GetGUID());
_Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
pInstance->SetData(DATA_TOBIAS,ENCOUNTER_STATE_IN_PROGRESS);
}
@@ -1079,7 +1079,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI
{
npc_rocknotAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -1172,12 +1172,12 @@ CreatureAI* GetAI_npc_rocknot(Creature *_Creature)
Rocknot_AI->FillPointMovementListForCreature();
- return (CreatureAI*)Rocknot_AI;
+ return Rocknot_AI;
}
bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest *_Quest, uint32 item)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if (!pInstance)
return true;
@@ -1197,7 +1197,7 @@ bool ChooseReward_npc_rocknot(Player *player, Creature *_Creature, const Quest *
{
DoScriptText(SAY_GOT_BEER, _Creature);
_Creature->CastSpell(_Creature,SPELL_DRUNKEN_RAGE,false);
- ((npc_escortAI*)(_Creature->AI()))->Start(false, false, false);
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(false, false, false);
}
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
index 28f2e6935e2..d08cbb06b98 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_ambassador_flamelashAI : public ScriptedAI
}
Summoned = DoSpawnCreature(9178, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
index 98e1e959314..5d47241a5d9 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
@@ -76,7 +76,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI
Rand1 = 0;
SummonedAdds = DoSpawnCreature(8901, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if(SummonedAdds)
- ((CreatureAI*)SummonedAdds->AI())->AttackStart(victim);
+ (SummonedAdds->AI())->AttackStart(victim);
}
void SummonMedics(Unit* victim)
@@ -97,7 +97,7 @@ struct TRINITY_DLL_DECL boss_general_angerforgeAI : public ScriptedAI
Rand2 = 0;
SummonedMedics = DoSpawnCreature(8894, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if(SummonedMedics)
- ((CreatureAI*)SummonedMedics->AI())->AttackStart(victim);
+ (SummonedMedics->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
index 3768422e323..ff02f60f7a2 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
@@ -515,7 +515,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
index cdb038588bf..98ed58f0b3a 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
@@ -104,10 +104,10 @@ struct TRINITY_DLL_DECL boss_overlordwyrmthalakAI : public ScriptedAI
SummonedCreature = m_creature->SummonCreature(9216,ADD_1X,ADD_1Y,ADD_1Z,ADD_1O,TEMPSUMMON_TIMED_DESPAWN,300000);
if(SummonedCreature)
- ((CreatureAI*)SummonedCreature->AI())->AttackStart(target);
+ (SummonedCreature->AI())->AttackStart(target);
SummonedCreature = m_creature->SummonCreature(9268,ADD_2X,ADD_2Y,ADD_2Z,ADD_2O,TEMPSUMMON_TIMED_DESPAWN,300000);
if(SummonedCreature)
- ((CreatureAI*)SummonedCreature->AI())->AttackStart(target);
+ (SummonedCreature->AI())->AttackStart(target);
Summoned = true;
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
index b11ac370804..ffba0ac8ef7 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
@@ -223,7 +223,7 @@ void SendDefaultMenu_boss_vael(Player *player, Creature *_Creature, uint32 actio
if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
player->CLOSE_GOSSIP_MENU();
- ((boss_vaelAI*)_Creature->AI())->BeginSpeach((Unit*)player);
+ CAST_AI(boss_vaelAI, _Creature->AI())->BeginSpeach(player);
}
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
index b3aee0035df..4b8a8b6ff23 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
@@ -373,7 +373,7 @@ bool GossipSelect_boss_victor_nefarius(Player *player, Creature *_Creature, uint
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
DoScriptText(SAY_GAMESBEGIN_1, _Creature);
- ((boss_victor_nefariusAI*)_Creature->AI())->BeginEvent(player);
+ CAST_AI(boss_victor_nefariusAI, _Creature->AI())->BeginEvent(player);
break;
}
return true;
diff --git a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
index c47ab0aceff..263bdf67143 100644
--- a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL mobs_bladespire_ogreAI : public ScriptedAI
void JustDied(Unit* Killer)
{
if (Killer->GetTypeId() == TYPEID_PLAYER)
- ((Player*)Killer)->KilledMonster(19995, m_creature->GetGUID());
+ CAST_PLR(Killer)->KilledMonster(19995, m_creature->GetGUID());
}
};
CreatureAI* GetAI_mobs_bladespire_ogre(Creature *_Creature)
@@ -261,8 +261,8 @@ struct TRINITY_DLL_DECL npc_daranelleAI : public ScriptedAI
{
DoScriptText(SAY_SPELL_INFLUENCE, m_creature, who);
//TODO: Move the below to updateAI and run if this statement == true
- ((Player*)who)->KilledMonster(21511, m_creature->GetGUID());
- ((Player*)who)->RemoveAurasDueToSpell(36904);
+ CAST_PLR(who)->KilledMonster(21511, m_creature->GetGUID());
+ CAST_PLR(who)->RemoveAurasDueToSpell(36904);
}
}
diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
index 062efcb1c4e..525570e37e2 100644
--- a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
+++ b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
@@ -87,7 +87,7 @@ struct TRINITY_DLL_DECL boss_kruulAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(19207, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
index 2dcc84eba80..b9660576097 100644
--- a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
+++ b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
@@ -56,7 +56,7 @@ struct TRINITY_DLL_DECL mob_webbed_creatureAI : public ScriptedAI
case 0:
spawnCreatureID = 17681;
if (Killer->GetTypeId() == TYPEID_PLAYER)
- ((Player*)Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID());
+ CAST_PLR(Killer)->KilledMonster(spawnCreatureID, m_creature->GetGUID());
break;
case 1:
case 2:
diff --git a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
index 1bbe33ea415..b66f4217851 100644
--- a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
+++ b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL npc_ragged_johnAI : public ScriptedAI
if( who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 15) && who->isInAccessiblePlaceFor(m_creature) )
{
DoCast(who,16472);
- ((Player*)who)->AreaExploredOrEventHappens(4866);
+ CAST_PLR(who)->AreaExploredOrEventHappens(4866);
}
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
index 872f7b2fcaf..56a99619504 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
@@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_aeonusAI : public ScriptedAI
{
boss_aeonusAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
index b4a4ffd04f8..7745c0c56c9 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
@@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI
{
boss_chrono_lord_dejaAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
index 56b434373bd..74264aef142 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
@@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_temporusAI : public ScriptedAI
{
boss_temporusAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp
index e69973c5fa5..740e3d221f6 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL npc_medivh_bmAI : public ScriptedAI
{
npc_medivh_bmAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL npc_time_riftAI : public ScriptedAI
{
npc_time_riftAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp
index 13b0c78ebc1..e4016707a99 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_anetheron.cpp
@@ -40,10 +40,10 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI
{
boss_anetheronAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SLEEP);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_SLEEP);
if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1)
{
TempSpell->EffectImplicitTargetA[0] = 1;
@@ -128,16 +128,16 @@ struct TRINITY_DLL_DECL boss_anetheronAI : public hyjal_trashAI
go = true;
if(pInstance)
{
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(0, 4896.08, -1576.35, 1333.65);
+ AddWaypoint(1, 4898.68, -1615.02, 1329.48);
+ AddWaypoint(2, 4907.12, -1667.08, 1321.00);
+ AddWaypoint(3, 4963.18, -1699.35, 1340.51);
+ AddWaypoint(4, 4989.16, -1716.67, 1335.74);
+ AddWaypoint(5, 5026.27, -1736.89, 1323.02);
+ AddWaypoint(6, 5037.77, -1770.56, 1324.36);
+ AddWaypoint(7, 5067.23, -1789.95, 1321.17);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -225,7 +225,7 @@ struct TRINITY_DLL_DECL mob_towering_infernalAI : public ScriptedAI
{
mob_towering_infernalAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
if(pInstance)
AnetheronGUID = pInstance->GetData64(DATA_ANETHERON);
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
index ca3d8296f35..6b6529b292e 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
@@ -76,7 +76,7 @@ struct mob_ancient_wispAI : public ScriptedAI
{
mob_ancient_wispAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI
{
boss_archimondeAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -282,7 +282,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI
}
if (victim && (victim->GetTypeId() == TYPEID_PLAYER))
- GainSoulCharge(((Player*)victim));
+ GainSoulCharge(CAST_PLR(victim));
}
void GainSoulCharge(Player* victim)
@@ -530,7 +530,7 @@ struct TRINITY_DLL_DECL boss_archimondeAI : public hyjal_trashAI
if (Wisp)
{
Wisp->AI()->AttackStart(m_creature);
- ((mob_ancient_wispAI*)Wisp->AI())->ArchimondeGUID = m_creature->GetGUID();
+ CAST_AI(mob_ancient_wispAI, Wisp->AI())->ArchimondeGUID = m_creature->GetGUID();
}
SummonWispTimer = 1500;
++WispCount;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp
index 33e3d344da2..8ca8ba36575 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_azgalor.cpp
@@ -31,10 +31,10 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI
{
boss_azgalorAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HOWL_OF_AZGALOR);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_HOWL_OF_AZGALOR);
if(TempSpell)
TempSpell->EffectRadiusIndex[0] = 12;//100yards instead of 50000?!
}
@@ -120,16 +120,16 @@ struct TRINITY_DLL_DECL boss_azgalorAI : public hyjal_trashAI
go = true;
if(pInstance)
{
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(0, 5492.91, -2404.61, 1462.63);
+ AddWaypoint(1, 5531.76, -2460.87, 1469.55);
+ AddWaypoint(2, 5554.58, -2514.66, 1476.12);
+ AddWaypoint(3, 5554.16, -2567.23, 1479.90);
+ AddWaypoint(4, 5540.67, -2625.99, 1480.89);
+ AddWaypoint(5, 5508.16, -2659.2, 1480.15);
+ AddWaypoint(6, 5489.62, -2704.05, 1482.18);
+ AddWaypoint(7, 5457.04, -2726.26, 1485.10);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -187,7 +187,7 @@ struct TRINITY_DLL_DECL mob_lesser_doomguardAI : public hyjal_trashAI
{
mob_lesser_doomguardAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
if(pInstance)
AzgalorGUID = pInstance->GetData64(DATA_AZGALOR);
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp
index 630945bcb96..c8e149e6a37 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_kazrogal.cpp
@@ -28,10 +28,10 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI
{
boss_kazrogalAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_MARK);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_MARK);
if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1)
{
TempSpell->EffectImplicitTargetA[0] = 1;
@@ -115,16 +115,16 @@ struct TRINITY_DLL_DECL boss_kazrogalAI : public hyjal_trashAI
go = true;
if(pInstance)
{
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 5492.91, -2404.61, 1462.63);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 5531.76, -2460.87, 1469.55);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 5554.58, -2514.66, 1476.12);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 5554.16, -2567.23, 1479.90);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 5540.67, -2625.99, 1480.89);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5508.16, -2659.2, 1480.15);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5489.62, -2704.05, 1482.18);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5457.04, -2726.26, 1485.10);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(0, 5492.91, -2404.61, 1462.63);
+ AddWaypoint(1, 5531.76, -2460.87, 1469.55);
+ AddWaypoint(2, 5554.58, -2514.66, 1476.12);
+ AddWaypoint(3, 5554.16, -2567.23, 1479.90);
+ AddWaypoint(4, 5540.67, -2625.99, 1480.89);
+ AddWaypoint(5, 5508.16, -2659.2, 1480.15);
+ AddWaypoint(6, 5489.62, -2704.05, 1482.18);
+ AddWaypoint(7, 5457.04, -2726.26, 1485.10);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp
index 3e6b2bc8e98..924652f3d41 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_rage_winterchill.cpp
@@ -34,7 +34,7 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI
{
boss_rage_winterchillAI(Creature *c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
}
@@ -112,16 +112,16 @@ struct TRINITY_DLL_DECL boss_rage_winterchillAI : public hyjal_trashAI
go = true;
if(pInstance)
{
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, 4896.08, -1576.35, 1333.65);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(1, 4898.68, -1615.02, 1329.48);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(2, 4907.12, -1667.08, 1321.00);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(3, 4963.18, -1699.35, 1340.51);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(4, 4989.16, -1716.67, 1335.74);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(5, 5026.27, -1736.89, 1323.02);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(6, 5037.77, -1770.56, 1324.36);
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(7, 5067.23, -1789.95, 1321.17);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(0, 4896.08, -1576.35, 1333.65);
+ AddWaypoint(1, 4898.68, -1615.02, 1329.48);
+ AddWaypoint(2, 4907.12, -1667.08, 1321.00);
+ AddWaypoint(3, 4963.18, -1699.35, 1340.51);
+ AddWaypoint(4, 4989.16, -1716.67, 1335.74);
+ AddWaypoint(5, 5026.27, -1736.89, 1323.02);
+ AddWaypoint(6, 5037.77, -1770.56, 1324.36);
+ AddWaypoint(7, 5067.23, -1789.95, 1321.17);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
index 96a991d6682..5b51a720f8b 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
@@ -66,7 +66,7 @@ CreatureAI* GetAI_npc_jaina_proudmoore(Creature *_Creature)
bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature)
{
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
if(ai->EventBegun)
return false;
@@ -88,7 +88,7 @@ bool GossipHello_npc_jaina_proudmoore(Player *player, Creature *_Creature)
bool GossipSelect_npc_jaina_proudmoore(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
switch(action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
@@ -130,7 +130,7 @@ CreatureAI* GetAI_npc_thrall(Creature *_Creature)
bool GossipHello_npc_thrall(Player *player, Creature *_Creature)
{
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
if (ai->EventBegun)
return false;
@@ -157,7 +157,7 @@ bool GossipHello_npc_thrall(Player *player, Creature *_Creature)
bool GossipSelect_npc_thrall(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
ai->DeSpawnVeins();//despawn the alliance veins
switch(action)
{
@@ -190,7 +190,7 @@ CreatureAI* GetAI_npc_tyrande_whisperwind(Creature *_Creature)
bool GossipHello_npc_tyrande_whisperwind(Player* player, Creature* _Creature)
{
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
uint32 AzgalorEvent = ai->GetInstanceData(DATA_AZGALOREVENT);
// Only let them get item if Azgalor is dead.
@@ -213,7 +213,7 @@ bool GossipSelect_npc_tyrande_whisperwind(Player *player, Creature *_Creature, u
player->SendNewItem(item,1,true,false,true);
}
player->SEND_GOSSIP_MENU(907, _Creature->GetGUID());
- hyjalAI* ai = ((hyjalAI*)_Creature->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, _Creature->AI());
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
index a3d79a28fa3..77ba7fd7ce2 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp
@@ -308,7 +308,7 @@ float HordeFirePos[65][8]=//spawn points for the fire visuals (GO) in the horde
hyjalAI::hyjalAI(Creature *c) : npc_escortAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
VeinsSpawned[0] = false;
VeinsSpawned[1] = false;
for(uint8 i=0;i<14;i++)
@@ -462,7 +462,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
{//summon at tower
pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][1]+irand(-20,20), SpawnPointSpecial[SPAWN_NEAR_TOWER][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
if(pCreature)
- ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true;
+ CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true;
}else{//summon at gate
pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_GARG_GATE][0]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][1]+irand(-10,10), SpawnPointSpecial[SPAWN_GARG_GATE][2]+irand(-10,10), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
}
@@ -474,7 +474,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
}else{
pCreature = m_creature->SummonCreature(entry, SpawnPointSpecial[SPAWN_NEAR_TOWER][0], SpawnPointSpecial[SPAWN_NEAR_TOWER][1],SpawnPointSpecial[SPAWN_NEAR_TOWER][2], 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
if(pCreature)
- ((hyjal_trashAI*)pCreature->AI())->useFlyPath = true;
+ CAST_AI(hyjal_trashAI, pCreature->AI())->useFlyPath = true;
}
break;
case 17908: //GIANT_INFERNAL
@@ -510,7 +510,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
case ANETHERON:
case KAZROGAL:
case AZGALOR:
- ((hyjal_trashAI*)pCreature->AI())->IsEvent = true;
+ CAST_AI(hyjal_trashAI, pCreature->AI())->IsEvent = true;
break;
}
if(pInstance)
@@ -682,7 +682,7 @@ void hyjalAI::Retreat()
if(JainaDummy)
{
JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- ((hyjalAI*)JainaDummy->AI())->IsDummy = true;
+ CAST_AI(hyjalAI, JainaDummy->AI())->IsDummy = true;
DummyGuid = JainaDummy->GetGUID();
}
AddWaypoint(0,JainaDummySpawn[1][0],JainaDummySpawn[1][1],JainaDummySpawn[1][2]);
@@ -728,7 +728,7 @@ void hyjalAI::DeSpawnVeins()
{
Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_JAINAPROUDMOORE));
if (!pUnit)return;
- hyjalAI* ai = ((hyjalAI*)pUnit->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI());
if(!ai)return;
for (uint8 i = 0; i<7; i++)
{
@@ -740,7 +740,7 @@ void hyjalAI::DeSpawnVeins()
{
Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_THRALL));
if (!pUnit)return;
- hyjalAI* ai = ((hyjalAI*)pUnit->AI());
+ hyjalAI* ai = CAST_AI(hyjalAI, pUnit->AI());
if(!ai)return;
for (uint8 i = 7; i<14; i++)
{
@@ -1000,8 +1000,8 @@ void hyjalAI::WaypointReached(uint32 i)
Unit* Dummy = Unit::GetUnit((*m_creature),DummyGuid);
if(Dummy)
{
- ((hyjalAI*)((Creature*)Dummy)->AI())->DoMassTeleport = true;
- ((hyjalAI*)((Creature*)Dummy)->AI())->MassTeleportTimer = 20000;
+ CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->DoMassTeleport = true;
+ CAST_AI(hyjalAI, CAST_CRE(Dummy)->AI())->MassTeleportTimer = 20000;
Dummy->CastSpell(m_creature,SPELL_MASS_TELEPORT,false);
}
}
@@ -1100,9 +1100,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
Creature* pUnit = m_creature->SummonCreature(GHOUL, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
if(pUnit)
{
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
@@ -1112,9 +1112,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
Creature* pUnit = m_creature->SummonCreature(ABOMINATION, AllianceBase[r][0]+irand(-15,15), AllianceBase[r][1]+irand(-15,15), AllianceBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
if(pUnit)
{
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
@@ -1124,9 +1124,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
if(pUnit)
{
pUnit->SetHomePosition(AllianceOverrunGargPos[i][0], AllianceOverrunGargPos[i][1], AllianceOverrunGargPos[i][2], AllianceOverrunGargPos[i][3]);
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
@@ -1141,9 +1141,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
if(pUnit)
{
pUnit->SetHomePosition(InfernalSPWP[i][0], InfernalSPWP[i][1], InfernalSPWP[i][2], InfernalSPWP[i][3]);
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
@@ -1153,9 +1153,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
Creature* pUnit = m_creature->SummonCreature(GHOUL, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
if(pUnit)
{
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
@@ -1165,9 +1165,9 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
Creature* pUnit = m_creature->SummonCreature(ABOMINATION, HordeBase[r][0]+irand(-15,15), HordeBase[r][1]+irand(-15,15), HordeBase[r][2], 0, TEMPSUMMON_MANUAL_DESPAWN, 2*60*1000);
if(pUnit)
{
- ((hyjal_trashAI*)pUnit->AI())->faction = Faction;
- ((hyjal_trashAI*)pUnit->AI())->IsOverrun = true;
- ((hyjal_trashAI*)pUnit->AI())->OverrunType = i;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->faction = Faction;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->IsOverrun = true;
+ CAST_AI(hyjal_trashAI, pUnit->AI())->OverrunType = i;
pUnit->setActive(true);
}
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
index 30f0c14caaf..92cbfdbf3ab 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.cpp
@@ -141,7 +141,7 @@ float HordeOverrunWP[21][3]=//waypoints in the horde base used in the end in the
hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
IsEvent = false;
Delay = 0;
LastOverronPos = 0;
@@ -156,7 +156,7 @@ hyjal_trashAI::hyjal_trashAI(Creature *c) : npc_escortAI(c)
void hyjal_trashAI::DamageTaken(Unit *done_by, uint32 &damage)
{
- if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && ((Creature*)done_by)->isPet()))
+ if(done_by->GetTypeId() == TYPEID_PLAYER || (done_by->GetTypeId() == TYPEID_UNIT && CAST_CRE(done_by)->isPet()))
{
damageTaken += damage;
if(pInstance)
@@ -375,7 +375,7 @@ struct mob_giant_infernalAI : public hyjal_trashAI
{
mob_giant_infernalAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
meteor = false;//call once!
CanMove = false;
Delay = rand()%30000;
@@ -473,9 +473,9 @@ struct mob_giant_infernalAI : public hyjal_trashAI
go = true;
if(pInstance)
{
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall
- ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(0, HordeWPs[7][0]+irand(-3,3), HordeWPs[7][1]+irand(-3,3), HordeWPs[7][2]);//HordeWPs[7] infront of thrall
+ Start(true, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -509,7 +509,7 @@ struct mob_abominationAI : public hyjal_trashAI
{
mob_abominationAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -566,15 +566,15 @@ struct mob_abominationAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -604,7 +604,7 @@ struct mob_ghoulAI : public hyjal_trashAI
{
mob_ghoulAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -667,15 +667,15 @@ struct mob_ghoulAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -707,7 +707,7 @@ struct mob_necromancerAI : public hyjal_trashAI
{
mob_necromancerAI(Creature* c) : hyjal_trashAI(c), summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -786,15 +786,15 @@ struct mob_necromancerAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(true, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(true, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(true, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -825,7 +825,7 @@ struct mob_bansheeAI : public hyjal_trashAI
{
mob_bansheeAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -878,15 +878,15 @@ struct mob_bansheeAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -924,7 +924,7 @@ struct mob_crypt_fiendAI : public hyjal_trashAI
{
mob_crypt_fiendAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -973,15 +973,15 @@ struct mob_crypt_fiendAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
@@ -1010,7 +1010,7 @@ struct mob_fel_stalkerAI : public hyjal_trashAI
{
mob_fel_stalkerAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -1059,15 +1059,15 @@ struct mob_fel_stalkerAI : public hyjal_trashAI
if (pInstance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, use horde WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, HordeWPs[i][0]+irand(-3,3), HordeWPs[i][1]+irand(-3,3), HordeWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else//use alliance WPs
{
for (uint8 i = 0; i < 8; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, AllianceWPs[i][0]+irand(-3,3), AllianceWPs[i][1]+irand(-3,3), AllianceWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
@@ -1096,7 +1096,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI
{
mob_frost_wyrmAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
Reset();
@@ -1147,7 +1147,7 @@ struct mob_frost_wyrmAI : public hyjal_trashAI
hyjal_trashAI::UpdateAI(diff);
if(IsEvent || IsOverrun)
{
- ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false);
+ CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false);
npc_escortAI::UpdateAI(diff);
}
if (IsEvent)
@@ -1160,14 +1160,14 @@ struct mob_frost_wyrmAI : public hyjal_trashAI
if(!useFlyPath)
{
for (uint8 i = 0; i < 3; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else{//fly path FlyPathWPs
for (uint8 i = 0; i < 3; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -1207,7 +1207,7 @@ struct mob_gargoyleAI : public hyjal_trashAI
{
mob_gargoyleAI(Creature* c) : hyjal_trashAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
go = false;
pos = 0;
DummyTarget[0] = 0;DummyTarget[1] = 0;DummyTarget[2] = 0;
@@ -1259,7 +1259,7 @@ struct mob_gargoyleAI : public hyjal_trashAI
hyjal_trashAI::UpdateAI(diff);
if(IsEvent || IsOverrun)
{
- ((hyjal_trashAI*)m_creature->AI())->SetCanMelee(false);
+ CAST_AI(hyjal_trashAI, m_creature->AI())->SetCanMelee(false);
npc_escortAI::UpdateAI(diff);
}
if (IsEvent)
@@ -1272,14 +1272,14 @@ struct mob_gargoyleAI : public hyjal_trashAI
if(!useFlyPath)
{
for (uint8 i = 0; i < 3; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, GargoyleWPs[i][0]+irand(-10,10), GargoyleWPs[i][1]+irand(-10,10), GargoyleWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}else{//fly path FlyPathWPs
for (uint8 i = 0; i < 3; ++i)
- ((npc_escortAI*)(m_creature->AI()))->AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]);
- ((npc_escortAI*)(m_creature->AI()))->Start(false, true, true);
- ((npc_escortAI*)(m_creature->AI()))->SetDespawnAtEnd(false);
+ AddWaypoint(i, FlyPathWPs[i][0]+irand(-10,10), FlyPathWPs[i][1]+irand(-10,10), FlyPathWPs[i][2]);
+ Start(false, true, true);
+ SetDespawnAtEnd(false);
}
}
}
@@ -1346,7 +1346,7 @@ struct TRINITY_DLL_DECL alliance_riflemanAI : public Scripted_NoMovementAI
uint32 ExplodeTimer;
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
index 3eda30963a5..feff5debf3e 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
@@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_captain_skarlocAI : public ScriptedAI
{
boss_captain_skarlocAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
index c2451dce22d..26e1cb57e1a 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_epoch_hunterAI : public ScriptedAI
{
boss_epoch_hunterAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
index ddca1523597..e219c8f72a6 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
@@ -31,7 +31,7 @@ EndScriptData */
bool GOHello_go_barrel_old_hillsbrad(Player *player, GameObject* _GO)
{
- ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData();
+ ScriptedInstance* pInstance = _GO->GetInstanceData();
if (!pInstance)
return false;
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
index f149ce50f77..ec01c32b5a3 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
@@ -46,7 +46,7 @@ bool GossipHello_npc_erozion(Player *player, Creature *_Creature)
if( _Creature->isQuestGiver() )
player->PrepareQuestMenu( _Creature->GetGUID() );
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if( pInstance && pInstance->GetData(TYPE_BARREL_DIVERSION) != DONE && !player->HasItemCount(ITEM_ENTRY_BOMBS,1) )
player->ADD_GOSSIP_ITEM( 0, "I need a pack of Incendiary Bombs.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI
{
npc_thrall_old_hillsbradAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
m_creature->setActive(true);
}
@@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI
if (uint64 TarethaGUID = pInstance->GetData64(DATA_TARETHA))
{
if (Creature* Taretha = (Unit::GetCreature(*m_creature, TarethaGUID)))
- ((npc_escortAI*)(Taretha->AI()))->Start(false, false, true, PlayerGUID);
+ CAST_AI(npc_escortAI, (Taretha->AI()))->Start(false, false, true, PlayerGUID);
}
//kill credit creature for quest
@@ -486,7 +486,7 @@ CreatureAI* GetAI_npc_thrall_old_hillsbrad(Creature *_Creature)
thrall_walkAI->FillPointMovementListForCreature();
- return (CreatureAI*)thrall_walkAI;
+ return thrall_walkAI;
}
bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature)
@@ -497,7 +497,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature)
player->SendPreparedQuest(_Creature->GetGUID());
}
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if( pInstance )
{
if (pInstance->GetData(TYPE_BARREL_DIVERSION) == DONE && !pInstance->GetData(TYPE_THRALL_EVENT))
@@ -523,7 +523,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature)
bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
switch( action )
{
case GOSSIP_ACTION_INFO_DEF+1:
@@ -536,10 +536,10 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature,
DoScriptText(SAY_TH_START_EVENT_PART1, _Creature);
- ((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID());
- ((npc_escortAI*)(_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far
- ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtEnd(false);
- ((npc_escortAI*)(_Creature->AI()))->SetDespawnAtFar(false);
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far
+ CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtEnd(false);
+ CAST_AI(npc_escortAI, (_Creature->AI()))->SetDespawnAtFar(false);
break;
case GOSSIP_ACTION_INFO_DEF+2:
@@ -555,14 +555,14 @@ bool GossipSelect_npc_thrall_old_hillsbrad(Player *player, Creature *_Creature,
DoScriptText(SAY_TH_START_EVENT_PART2, _Creature);
- ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP();
+ CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP();
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
if(pInstance)
pInstance->SetData(TYPE_THRALL_PART3,IN_PROGRESS);
- ((npc_thrall_old_hillsbradAI*)_Creature->AI())->StartWP();
+ CAST_AI(npc_thrall_old_hillsbradAI, _Creature->AI())->StartWP();
break;
}
return true;
@@ -581,7 +581,7 @@ struct TRINITY_DLL_DECL npc_tarethaAI : public npc_escortAI
{
npc_tarethaAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -612,12 +612,12 @@ CreatureAI* GetAI_npc_taretha(Creature *_Creature)
taretha_walkAI->FillPointMovementListForCreature();
- return (CreatureAI*)taretha_walkAI;
+ return taretha_walkAI;
}
bool GossipHello_npc_taretha(Player *player, Creature *_Creature)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if( pInstance && pInstance->GetData(TYPE_THRALL_PART3) == DONE && pInstance->GetData(TYPE_THRALL_PART4) == NOT_STARTED)
{
player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -628,7 +628,7 @@ bool GossipHello_npc_taretha(Player *player, Creature *_Creature)
bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if( action == GOSSIP_ACTION_INFO_DEF+1 )
{
player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -649,7 +649,7 @@ bool GossipSelect_npc_taretha(Player *player, Creature *_Creature, uint32 sender
{
Creature* Thrall = (Unit::GetCreature((*_Creature), ThrallGUID));
if(Thrall)
- ((npc_thrall_old_hillsbradAI*)Thrall->AI())->StartWP();
+ CAST_AI(npc_thrall_old_hillsbradAI, Thrall->AI())->StartWP();
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
index cac1d386c62..5e9afdf5c33 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI
{
boss_fathomlord_karathressAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Advisors[0] = 0;
Advisors[1] = 0;
Advisors[2] = 0;
@@ -305,7 +305,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI
{
boss_fathomguard_sharkkisAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -349,8 +349,8 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI
Karathress = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_KARATHRESS)));
if (Karathress)
- ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath();
- ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath();
+ CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath();
+ CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath();
}
}
@@ -449,7 +449,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI
{
boss_fathomguard_tidalvessAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -479,7 +479,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI
if (Karathress)
if(!m_creature->isAlive() && Karathress)
- ((boss_fathomlord_karathressAI*)Karathress->AI())->EventTidalvessDeath();
+ CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventTidalvessDeath();
}
}
@@ -536,7 +536,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI
Unit *SpitfireTotem = Unit::GetUnit( *m_creature, CREATURE_SPITFIRE_TOTEM );
if( SpitfireTotem )
{
- ((Creature*)SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() );
+ CAST_CRE(SpitfireTotem)->AI()->AttackStart( m_creature->getVictim() );
}
Spitfire_Timer = 60000;
}else Spitfire_Timer -= diff;
@@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI
{
boss_fathomguard_caribdisAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -594,7 +594,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI
if (Karathress)
if(!m_creature->isAlive() && Karathress)
- ((boss_fathomlord_karathressAI*)Karathress->AI())->EventCaribdisDeath();
+ CAST_AI(boss_fathomlord_karathressAI, Karathress->AI())->EventCaribdisDeath();
}
}
@@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI
Creature *Cyclone = m_creature->SummonCreature(CREATURE_CYCLONE, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), (rand()%5), TEMPSUMMON_TIMED_DESPAWN, 15000);
if( Cyclone )
{
- ((Creature*)Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f);
+ CAST_CRE(Cyclone)->SetFloatValue(OBJECT_FIELD_SCALE_X, 3.0f);
Cyclone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Cyclone->setFaction(m_creature->getFaction());
Cyclone->CastSpell(Cyclone, SPELL_CYCLONE_CYCLONE, true);
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
index cb91f063d9f..bd2365336f0 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI
{
boss_hydross_the_unstableAI(Creature *c) : ScriptedAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
index beebbc631c0..8e5ed16688c 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
@@ -132,7 +132,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
{
boss_lady_vashjAI (Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Intro = false;
JustCreated = true;
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on creature create (no need do intro if wiped)
@@ -583,14 +583,14 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
{
mob_enchanted_elementalAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
uint32 move;
uint32 phase;
float x, y, z;
- Unit *Vashj;
+ Creature *Vashj;
void Reset()
{
@@ -619,7 +619,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
}
}
if (pInstance)
- Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ));
+ Vashj = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ));
}
void EnterCombat(Unit *who) { return; }
@@ -657,7 +657,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
m_creature->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
if(m_creature->GetDistance(MIDDLE_X, MIDDLE_Y, MIDDLE_Z) < 3)
{
- SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_SURGE);
+ SpellEntry *spell = GET_SPELL(SPELL_SURGE);
if( spell )
{
uint8 eff_mask=0;
@@ -672,7 +672,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
}
- if(((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->InCombat == false || ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 2 || Vashj->isDead())
+ if(CAST_AI(boss_lady_vashjAI, Vashj->AI())->InCombat == false || CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead())
{
//call Unsummon()
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
@@ -688,7 +688,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI
{
mob_tainted_elementalAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -710,7 +710,7 @@ struct TRINITY_DLL_DECL mob_tainted_elementalAI : public ScriptedAI
Vashj = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_LADYVASHJ)));
if(Vashj)
- ((boss_lady_vashjAI*)Vashj->AI())->EventTaintedElementalDeath();
+ CAST_AI(boss_lady_vashjAI, Vashj->AI())->EventTaintedElementalDeath();
}
}
@@ -751,7 +751,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI
{
mob_toxic_sporebatAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
EnterEvadeMode();
}
@@ -827,7 +827,7 @@ struct TRINITY_DLL_DECL mob_toxic_sporebatAI : public ScriptedAI
//check if vashj is death
Unit *Vashj = NULL;
Vashj = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LADYVASHJ));
- if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && ((boss_lady_vashjAI*)((Creature*)Vashj)->AI())->Phase != 3))
+ if(!Vashj || (Vashj && !Vashj->isAlive()) || (Vashj && CAST_AI(boss_lady_vashjAI, CAST_CRE(Vashj)->AI())->Phase != 3))
{
//remove
m_creature->setDeathState(DEAD);
@@ -883,7 +883,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI
{
mob_shield_generator_channelAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -928,7 +928,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI
bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets const& targets)
{
- ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL;
if(!pInstance)
{
@@ -938,7 +938,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con
Creature *Vashj = NULL;
Vashj = (Unit::GetCreature((*player), pInstance->GetData64(DATA_LADYVASHJ)));
- if(Vashj && ((boss_lady_vashjAI*)Vashj->AI())->Phase == 2)
+ if(Vashj && CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase == 2)
{
if(targets.getGOTarget() && targets.getGOTarget()->GetTypeId()==TYPEID_GAMEOBJECT)
{
@@ -974,7 +974,7 @@ bool ItemUse_item_tainted_core(Player *player, Item* _Item, SpellCastTargets con
//get and remove channel
Unit *Channel = NULL;
- Channel = Unit::GetUnit((*Vashj), ((boss_lady_vashjAI*)Vashj->AI())->ShieldGeneratorChannel[channel_identifier]);
+ Channel = Unit::GetCreature(*Vashj, CAST_AI(boss_lady_vashjAI, Vashj->AI())->ShieldGeneratorChannel[channel_identifier]);
if(Channel)
{
//call Unsummon()
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
index 8b9421dfd4c..1373be2ed6d 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
@@ -140,7 +140,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c)
{
m_creature->GetPosition(x,y,z);
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Demon = 0;
for(uint8 i = 0; i < 3; i++)//clear guids
@@ -326,10 +326,10 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
{
if(InnderDemon[i] > 0 )
{
- Unit* pUnit = Unit::GetUnit((*m_creature), InnderDemon[i]);
+ Creature* pUnit = Unit::GetCreature((*m_creature), InnderDemon[i]);
if (pUnit && pUnit->isAlive())
{
- Unit* pUnit_target = Unit::GetUnit((*pUnit), ((mob_inner_demonAI *)((Creature *)pUnit)->AI())->victimGUID);
+ Unit* pUnit_target = Unit::GetUnit(*pUnit, CAST_AI(mob_inner_demonAI, pUnit->AI())->victimGUID);
if( pUnit_target && pUnit_target->isAlive())
{
pUnit->CastSpell(pUnit_target, SPELL_CONSUMING_MADNESS, true);
@@ -496,16 +496,16 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
if(tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != m_creature->getVictim()->GetGUID() && TargetList.size()<5)
TargetList.push_back( tempTarget );
}
- SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_INSIDIOUS_WHISPER);
+ SpellEntry *spell = GET_SPELL(SPELL_INSIDIOUS_WHISPER);
for(std::vector<Unit *>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr)
{
if( (*itr) && (*itr)->isAlive() )
{
- Creature * demon = (Creature *)m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+ Creature * demon = m_creature->SummonCreature(INNER_DEMON_ID, (*itr)->GetPositionX()+10, (*itr)->GetPositionY()+10, (*itr)->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
if(demon)
{
- ((ScriptedAI *)demon->AI())->AttackStart( (*itr) );
- ((mob_inner_demonAI *)demon->AI())->victimGUID = (*itr)->GetGUID();
+ demon->AI()->AttackStart( (*itr) );
+ CAST_AI(mob_inner_demonAI, demon->AI())->victimGUID = (*itr)->GetGUID();
uint8 eff_mask=0;
for (int i=0; i<3; i++)
@@ -640,7 +640,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI
{
mob_greyheart_spellbinderAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance *)c->GetInstanceData());;
+ pInstance = (c->GetInstanceData());;
leotherasGUID = 0;
AddedBanish = false;
}
@@ -662,9 +662,9 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI
if(pInstance)
{
pInstance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0);
- Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID);
+ Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID);
if(leotheras && leotheras->isAlive())
- ((boss_leotheras_the_blindAI*)leotheras->AI())->CheckChannelers(false);
+ CAST_AI(boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(false);
}
}
@@ -687,7 +687,7 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI
{
if(leotherasGUID)
{
- Creature *leotheras = (Creature *)Unit::GetUnit(*m_creature, leotherasGUID);
+ Creature *leotheras = Unit::GetCreature(*m_creature, leotherasGUID);
if(leotheras && leotheras->isAlive())
DoCast(leotheras, BANISH_BEAM);
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
index 254a4d1d899..3fa97e6b608 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
@@ -76,8 +76,8 @@ struct TRINITY_DLL_DECL boss_the_lurker_belowAI : public Scripted_NoMovementAI
{
boss_the_lurker_belowAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SPOUT_ANIM);
+ pInstance = (c->GetInstanceData());
+ SpellEntry *TempSpell = GET_SPELL(SPELL_SPOUT_ANIM);
if(TempSpell)
{
TempSpell->Effect[0] = 0;//remove all spell effect, only anim is needed
@@ -403,7 +403,7 @@ struct TRINITY_DLL_DECL mob_coilfang_ambusherAI : public Scripted_NoMovementAI
{
mob_coilfang_ambusherAI(Creature *c) : Scripted_NoMovementAI(c)
{
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_SHOOT);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_SHOOT);
if(TempSpell)
TempSpell->Effect[0] = 2;//change spell effect from weapon % dmg to simple phisical dmg
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
index f8d27df5bb0..5038fe09334 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
@@ -100,7 +100,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI
{
boss_morogrim_tidewalkerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -163,7 +163,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI
void EnterCombat(Unit *who)
{
- PlayerList = &((InstanceMap*)m_creature->GetMap())->GetPlayers();
+ PlayerList = &m_creature->GetMap()->GetPlayers();
Playercount = PlayerList->getSize();
StartEvent();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
index 8aa759a87c8..4e104fc2846 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
@@ -37,7 +37,7 @@ EndScriptData */
bool GOHello_go_bridge_console(Player *player, GameObject* go)
{
- ScriptedInstance* pInstance = (ScriptedInstance*)go->GetInstanceData();
+ ScriptedInstance* pInstance = go->GetInstanceData();
if(!pInstance)
return false;
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
index 648781f6606..c8bbe986176 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI
{
boss_thespiaAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
index 14dae22fdc2..50d919d3e2c 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
@@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI
{
boss_mekgineer_steamriggerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -199,7 +199,7 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI
{
mob_steamrigger_mechanicAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
index fb8a00865ed..f84b6864641 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL mob_naga_distillerAI : public ScriptedAI
{
mob_naga_distillerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -90,7 +90,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI
{
boss_warlord_kalithreshAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL boss_warlord_kalithreshAI : public ScriptedAI
{
DoScriptText(SAY_REGEN, m_creature);
DoCast(m_creature,SPELL_WARLORDS_RAGE);
- ((mob_naga_distillerAI*)distiller->AI())->StartRageGen(m_creature);
+ CAST_AI(mob_naga_distillerAI, distiller->AI())->StartRageGen(m_creature);
}
Rage_Timer = 3000+rand()%15000;
}else Rage_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
index d375d073c35..55ef0716638 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
@@ -38,7 +38,7 @@ EndScriptData */
bool GOHello_go_main_chambers_access_panel(Player *player, GameObject* _GO)
{
- ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData();
+ ScriptedInstance* pInstance = _GO->GetInstanceData();
if (!pInstance)
return false;
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp
index 72c7992e109..62bcf62a2df 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp
@@ -119,7 +119,7 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI
{
if(LevitatedTarget_Timer < diff)
{
- if(Unit* target = (Unit*)Unit::GetUnit(*m_creature, LevitatedTarget))
+ if(Unit* target = Unit::GetUnit(*m_creature, LevitatedTarget))
{
if(!target->HasAura(SPELL_LEVITATE))
{
diff --git a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp
index 2d13ce8d347..72498f388ec 100644
--- a/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp
+++ b/src/bindings/scripts/scripts/zone/deadmines/deadmines.cpp
@@ -196,7 +196,7 @@ struct TRINITY_DLL_DECL instance_deadmines : public ScriptedInstance
bool ItemUse_item_defias_gunpowder(Player *player, Item* _Item, SpellCastTargets const& targets)
{
- ScriptedInstance *pInstance = (player->GetInstanceData()) ? ((ScriptedInstance*)player->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (player->GetInstanceData()) ? (player->GetInstanceData()) : NULL;
if(!pInstance)
{
diff --git a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
index 6fc6a53651b..9e88ac0becc 100644
--- a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
+++ b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL mobs_risen_husk_spiritAI : public ScriptedAI
void DamageTaken(Unit *done_by, uint32 &damage)
{
if( done_by->GetTypeId() == TYPEID_PLAYER )
- if( damage >= m_creature->GetHealth() && ((Player*)done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE )
+ if( damage >= m_creature->GetHealth() && CAST_PLR(done_by)->GetQuestStatus(11180) == QUEST_STATUS_INCOMPLETE )
m_creature->CastSpell(done_by,SPELL_SUMMON_RESTLESS_APPARITION,false);
}
diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
index 30511d45969..5ec53a0cdcb 100644
--- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
+++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp
@@ -167,7 +167,7 @@ struct TRINITY_DLL_DECL npc_unworthy_initiateAI : public ScriptedAI
{
if(m_creature->GetEntry() != 29519)
if(killer->GetTypeId() == TYPEID_PLAYER)
- ((Player*)killer)->KilledMonster(29519,m_creature->GetGUID());
+ CAST_PLR(killer)->KilledMonster(29519,m_creature->GetGUID());
}
void AddEquipp()
@@ -284,7 +284,7 @@ void npc_unworthy_initiateAI::UpdateAI(const uint32 diff)
if(go_prison)
go_prison->ResetDoorOrButton();
- ((npc_unworthy_initiate_anchorAI*)trigger->AI())->SetTarget(m_creature->GetGUID());
+ CAST_AI(npc_unworthy_initiate_anchorAI, trigger->AI())->SetTarget(m_creature->GetGUID());
trigger->CastSpell(m_creature,SPELL_SOUL_PRISON_CHAIN,true);
anchor = trigger->GetGUID();
}
@@ -367,12 +367,12 @@ bool GOHello_go_acherus_soul_prison(Player *player, GameObject* _GO)
Unit* prison_anchor = finder->FindNearestCreature(29521, 15);
if(!prison_anchor) return false;
- uint64 owner = ((npc_unworthy_initiate_anchorAI*)((Creature*)prison_anchor)->AI())->GetTarget();
+ uint64 owner = CAST_AI(npc_unworthy_initiate_anchorAI, CAST_CRE(prison_anchor)->AI())->GetTarget();
Creature* prisoner = Creature::GetCreature((*player),owner);
if(prisoner)
{
- ((npc_unworthy_initiateAI*)(prisoner->AI()))->EventStart((Creature*)prison_anchor,player);
+ CAST_AI(npc_unworthy_initiateAI, (prisoner->AI()))->EventStart(CAST_CRE(prison_anchor),player);
}
return false;
@@ -422,7 +422,7 @@ struct TRINITY_DLL_DECL npc_death_knight_initiateAI : public SpellAI
{
if(!me->HasAura(7267)) // beg aura has faded
{
- ((Player*)me->getVictim())->KilledMonster(29025,m_creature->GetGUID());
+ CAST_PLR(me->getVictim())->KilledMonster(29025,m_creature->GetGUID());
EnterEvadeMode();
}
return;
@@ -480,7 +480,10 @@ bool GossipSelect_npc_death_knight_initiate(Player *player, Creature *_Creature,
if( action == GOSSIP_ACTION_INFO_DEF )
{
player->CastSpell(player, SPELL_DUEL_FLAG, true);
- _Creature->setFaction(10); // make him yellow, not red (will be killed by other npc)
+ if (player->GetTeam() == HORDE ) // Check the player team, then choose faction
+ _Creature->setFaction(1);
+ else
+ _Creature->setFaction(2);
_Creature->AI()->AttackStart(player);
}
return true;
@@ -498,20 +501,20 @@ struct TRINITY_DLL_DECL npc_salanar_the_horsemanAI : public ScriptedAI
{
ScriptedAI::MoveInLineOfSight(who);
- if(who->GetTypeId() == TYPEID_UNIT && ((Creature*)who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f))
+ if(who->GetTypeId() == TYPEID_UNIT && CAST_CRE(who)->isVehicle() && me->IsWithinDistInMap(who, 10.0f))
{
if( Unit *charmer = who->GetCharmer() )
{
if( charmer->GetTypeId() == TYPEID_PLAYER )
{
- if( ((Player*)charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE )
- ((Player*)charmer)->KilledMonster(28767, me->GetGUID());
- else if( ((Player*)charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE )
- ((Player*)charmer)->GroupEventHappens(12687, me);
- ((Player*)charmer)->ExitVehicle();
+ if( CAST_PLR(charmer)->GetQuestStatus(12680) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(charmer)->KilledMonster(28767, me->GetGUID());
+ else if( CAST_PLR(charmer)->GetQuestStatus(12687) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(charmer)->GroupEventHappens(12687, me);
+ CAST_PLR(charmer)->ExitVehicle();
//without this we can see npc kill the horse
- //who->setDeathState(DEAD);
- //((Creature*)who)->Respawn();
+ who->setDeathState(DEAD);
+ CAST_CRE(who)->Respawn();
}
}
}
@@ -531,6 +534,23 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI
{
npc_ros_dark_riderAI(Creature *c) : ScriptedAI(c) {}
+ void MoveInLineOfSight(Unit *who)
+ {
+ if(me->getVictim())
+ return;
+
+ // this should be before next one otherwise he may enter vehicle again
+ if(!me->m_Vehicle && who->GetEntry() == 28782 && CAST_CRE(who)->isVehicle() && !who->GetCharmerGUID())
+ me->EnterVehicle((Vehicle*)who);
+
+ ScriptedAI::MoveInLineOfSight(who);
+ }
+
+ void CombatStart(Unit *who)
+ {
+ me->ExitVehicle();
+ }
+
void Reset()
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
@@ -548,7 +568,6 @@ struct TRINITY_DLL_DECL npc_ros_dark_riderAI : public ScriptedAI
{
deathcharger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
deathcharger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- deathcharger->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
deathcharger->setFaction(2096);
}
}
diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
index 8aeb6e53810..aaded603f80 100644
--- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
+++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
@@ -89,7 +89,7 @@ CreatureAI* GetAI_npc_prospector_anvilward(Creature* pCreature)
thisAI->FillPointMovementListForCreature();
- return (CreatureAI*)thisAI;
+ return thisAI;
}
bool GossipHello_npc_prospector_anvilward(Player *player, Creature *_Creature)
@@ -111,7 +111,7 @@ bool GossipSelect_npc_prospector_anvilward(Player *player, Creature *_Creature,
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(_Creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (_Creature->AI()))->Start(true, true, false, player->GetGUID());
break;
}
return true;
@@ -343,7 +343,7 @@ struct TRINITY_DLL_DECL master_kelerun_bloodmournAI : public ScriptedAI
Creature* paladinSpawn;
paladinSpawn = (Unit::GetCreature((*m_creature), paladinGuid[paladinPhase]));
if ( paladinSpawn ) {
- ((npc_secondTrialAI*)paladinSpawn->AI())->Activate(m_creature->GetGUID());
+ CAST_AI(npc_secondTrialAI, paladinSpawn->AI())->Activate(m_creature->GetGUID());
switch(paladinPhase) {
case 0:
@@ -405,7 +405,7 @@ bool GossipHello_master_kelerun_bloodmourn(Player *player, Creature *_Creature)
// Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest.
// !not sure if this really works!
- if ( ((master_kelerun_bloodmournAI*)_Creature->AI())->questPhase == 0 ) {
+ if ( CAST_AI(master_kelerun_bloodmournAI, _Creature->AI())->questPhase == 0 ) {
player->PrepareQuestMenu(_Creature->GetGUID());
player->SendPreparedQuest(_Creature->GetGUID());
}
@@ -418,7 +418,7 @@ bool QuestAccept_master_kelerun_bloodmourn(Player *player, Creature *creature, Q
{
// One Player exclusive quest, wait for user go activation
if(quest->GetQuestId() == QUEST_SECOND_TRIAL )
- ((master_kelerun_bloodmournAI*)creature->AI())->questPhase = 1;
+ CAST_AI(master_kelerun_bloodmournAI, creature->AI())->questPhase = 1;
return true;
}
@@ -444,12 +444,12 @@ void npc_secondTrialAI::JustDied(Unit* Killer) {
Summoner = (Unit::GetCreature((*m_creature), summonerGuid));
if ( Summoner )
- ((master_kelerun_bloodmournAI*)Summoner->AI())->SecondTrialKill();
+ CAST_AI(master_kelerun_bloodmournAI, Summoner->AI())->SecondTrialKill();
// last kill quest complete for group
if ( m_creature->GetEntry() == CHAMPION_SUNSTRIKER ) {
- if( Group *pGroup = ((Player*)Killer)->GetGroup() )
+ if( Group *pGroup = CAST_PLR(Killer)->GetGroup() )
{
for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next())
{
@@ -461,8 +461,8 @@ void npc_secondTrialAI::JustDied(Unit* Killer) {
}
}
else {
- if ( ((Player*)Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE )
- ((Player*)Killer)->CompleteQuest( QUEST_SECOND_TRIAL );
+ if ( CAST_PLR(Killer)->GetQuestStatus( QUEST_SECOND_TRIAL ) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(Killer)->CompleteQuest( QUEST_SECOND_TRIAL );
}
}
}
@@ -472,8 +472,8 @@ void npc_secondTrialAI::KilledUnit(Unit* Killed) {
if ( Killed->GetTypeId() == TYPEID_PLAYER ) {
- if ( ((Player*)Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE )
- ((Player*)Killed)->FailQuest(QUEST_SECOND_TRIAL);
+ if ( CAST_PLR(Killed)->GetQuestStatus(QUEST_SECOND_TRIAL) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(Killed)->FailQuest(QUEST_SECOND_TRIAL);
}
}
@@ -514,7 +514,7 @@ bool GOHello_go_second_trial(Player *player, GameObject* _GO)
cell_lock->Visit(cell_lock, grid_unit_searcher, *(_GO->GetMap()));
if ( event_controller )
- ((master_kelerun_bloodmournAI*)event_controller->AI())->StartEvent();
+ CAST_AI(master_kelerun_bloodmournAI, event_controller->AI())->StartEvent();
return true;
}
@@ -564,7 +564,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_UNEXPECTED_RESULT);
+ CAST_PLR(player)->FailQuest(QUEST_UNEXPECTED_RESULT);
}
}
@@ -576,7 +576,7 @@ struct TRINITY_DLL_DECL npc_apprentice_mirvedaAI : public ScriptedAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if(player)
- ((Player*)player)->CompleteQuest(QUEST_UNEXPECTED_RESULT);
+ CAST_PLR(player)->CompleteQuest(QUEST_UNEXPECTED_RESULT);
}
}
@@ -594,8 +594,8 @@ bool QuestAccept_npc_apprentice_mirveda(Player* player, Creature* creature, Ques
{
if (quest->GetQuestId() == QUEST_UNEXPECTED_RESULT)
{
- ((npc_apprentice_mirvedaAI*)creature->AI())->Summon = true;
- ((npc_apprentice_mirvedaAI*)creature->AI())->PlayerGUID = player->GetGUID();
+ CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->Summon = true;
+ CAST_AI(npc_apprentice_mirvedaAI, creature->AI())->PlayerGUID = player->GetGUID();
}
return true;
}
@@ -655,7 +655,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
{
if( who->GetTypeId() == TYPEID_PLAYER && !m_creature->canStartAttack(who) && !Progress)
{
- if( ((Player*)who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(QUEST_POWERING_OUR_DEFENSES) == QUEST_STATUS_INCOMPLETE )
{
float Radius = 10.0;
if( m_creature->IsWithinDistInMap(who, Radius) )
@@ -680,7 +680,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_POWERING_OUR_DEFENSES);
+ CAST_PLR(player)->FailQuest(QUEST_POWERING_OUR_DEFENSES);
}
}
@@ -694,7 +694,7 @@ struct TRINITY_DLL_DECL npc_infused_crystalAI : public Scripted_NoMovementAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if(player)
- ((Player*)player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES);
+ CAST_PLR(player)->CompleteQuest(QUEST_POWERING_OUR_DEFENSES);
}
m_creature->DealDamage(m_creature,m_creature->GetHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
m_creature->RemoveCorpse();
diff --git a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
index e43bf6e3a6c..be57b8c8d88 100644
--- a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
+++ b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
@@ -173,7 +173,7 @@ CreatureAI* GetAI_npc_oox22fe(Creature* pCreature)
oox22AI->FillPointMovementListForCreature();
- return (CreatureAI*)oox22AI;
+ return oox22AI;
}
bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* pQuest)
@@ -190,7 +190,7 @@ bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest*
if (pPlayer->GetTeam() == HORDE)
pCreature->setFaction(FACTION_ESCORTEE_H);
- ((npc_escortAI*)(pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID());
+ CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, false, pPlayer->GetGUID());
}
return true;
diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
index c0733579f27..9d4e81ca241 100644
--- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
+++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
@@ -126,7 +126,7 @@ bool GOHello_gilded_brazier(Player *player, GameObject* _GO)
{
Creature *Stillblade = player->SummonCreature(17716, 8106.11, -7542.06, 151.775, 3.02598, TEMPSUMMON_DEAD_DESPAWN, 60000);
if (Stillblade)
- ((CreatureAI*)Stillblade->AI())->AttackStart(player);
+ (Stillblade->AI())->AttackStart(player);
}
return true;
};
@@ -198,7 +198,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
case 25: m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); break;
case 30:
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_THE_CATACOMBS,m_creature);
break;
case 32:
m_creature->SetOrientation(2.978281);
@@ -232,7 +232,7 @@ struct TRINITY_DLL_DECL npc_ranger_lilathaAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS);
+ CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_THE_CATACOMBS);
}
}
@@ -247,7 +247,7 @@ bool QuestAccept_npc_ranger_lilatha(Player* player, Creature* creature, Quest co
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS)
{
creature->setFaction(113);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -258,7 +258,7 @@ CreatureAI* GetAI_npc_ranger_lilathaAI(Creature *_Creature)
ranger_lilathaAI->FillPointMovementListForCreature();
- return (CreatureAI*)ranger_lilathaAI;
+ return ranger_lilathaAI;
}
void AddSC_ghostlands()
diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
index 34400549822..0335799b4e9 100644
--- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
+++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_gruulAI : public ScriptedAI
{
boss_gruulAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
index 71ab145ff8e..7c1741fb77c 100644
--- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
+++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
@@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI
{
boss_high_king_maulgarAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
for(uint8 i = 0; i < 4; ++i)
Council[i] = 0;
}
@@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI
{
boss_olm_the_summonerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 DarkDecay_Timer;
@@ -341,7 +341,7 @@ struct TRINITY_DLL_DECL boss_olm_the_summonerAI : public ScriptedAI
Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR)));
if(Maulgar)
- ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath();
+ CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath();
if(CheckAllBossDied(pInstance, m_creature))
pInstance->SetData(DATA_MAULGAREVENT, DONE);
@@ -406,7 +406,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI
{
boss_kiggler_the_crazedAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 GreaterPolymorph_Timer;
@@ -445,7 +445,7 @@ struct TRINITY_DLL_DECL boss_kiggler_the_crazedAI : public ScriptedAI
Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR)));
if(Maulgar)
- ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath();
+ CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath();
if(CheckAllBossDied(pInstance, m_creature))
pInstance->SetData(DATA_MAULGAREVENT, DONE);
@@ -516,7 +516,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI
{
boss_blindeye_the_seerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 GreaterPowerWordShield_Timer;
@@ -553,7 +553,7 @@ struct TRINITY_DLL_DECL boss_blindeye_the_seerAI : public ScriptedAI
Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR)));
if(Maulgar)
- ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath();
+ CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath();
if(CheckAllBossDied(pInstance, m_creature))
pInstance->SetData(DATA_MAULGAREVENT, DONE);
@@ -614,7 +614,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI
{
boss_krosh_firehandAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 GreaterFireball_Timer;
@@ -651,7 +651,7 @@ struct TRINITY_DLL_DECL boss_krosh_firehandAI : public ScriptedAI
Maulgar = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MAULGAR)));
if(Maulgar)
- ((boss_high_king_maulgarAI*)Maulgar->AI())->AddDeath();
+ CAST_AI(boss_high_king_maulgarAI, Maulgar->AI())->AddDeath();
if(CheckAllBossDied(pInstance, m_creature))
pInstance->SetData(DATA_MAULGAREVENT, DONE);
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
index f274693d10e..10cdbdba862 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI
{
boss_kelidan_the_breakerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
for(int i=0; i<5; ++i) Channelers[i] = 0;
}
@@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI
DoScriptText(SAY_NOVA, m_creature);
- if(SpellEntry *nova = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BURNING_NOVA))
+ if(SpellEntry *nova = GET_SPELL(SPELL_BURNING_NOVA))
{
uint8 eff_mask=0;
for (int i=0; i<3; i++)
@@ -269,7 +269,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI
{
mob_shadowmoon_channelerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -292,7 +292,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI
void EnterCombat(Unit* who)
{
if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
- ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerEngaged(who);
+ CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerEngaged(who);
if (m_creature->IsNonMeleeSpellCasted(false))
m_creature->InterruptNonMeleeSpells(true);
DoStartMovement(who);
@@ -301,7 +301,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI
void JustDied(Unit* Killer)
{
if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
- ((boss_kelidan_the_breakerAI*)Kelidan->AI())->ChannelerDied(Killer);
+ CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(Killer);
}
void UpdateAI(const uint32 diff)
@@ -313,7 +313,7 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI
if (!m_creature->IsNonMeleeSpellCasted(false))
if(Creature *Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
{
- uint64 channeler = ((boss_kelidan_the_breakerAI*)Kelidan->AI())->GetChanneled(m_creature);
+ uint64 channeler = CAST_AI(boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(m_creature);
if(Unit *channeled = Unit::GetUnit(*m_creature, channeler))
DoCast(channeled,SPELL_CHANNELING);
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp
index 89de9b9188d..72e614dbb1b 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_vazruden_the_herald.cpp
@@ -335,7 +335,7 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI
Unit *victim = m_creature->getVictim();
if(summoned->GetEntry() == ENTRY_NAZAN)
{
- ((boss_nazanAI *)summoned->AI())->VazrudenGUID = VazrudenGUID;
+ CAST_AI(boss_nazanAI, summoned->AI())->VazrudenGUID = VazrudenGUID;
summoned->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
summoned->SetSpeed(MOVE_FLIGHT, 2.5);
if(victim)
@@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL mob_hellfire_sentryAI : public ScriptedAI
void JustDied(Unit* who)
{
if(Creature *herald = me->FindNearestCreature(ENTRY_VAZRUDEN_HERALD,150))
- ((boss_vazruden_the_heraldAI *)herald->AI())->SentryDownBy(who);
+ CAST_AI(boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(who);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
index 96956790019..69084fb2d14 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
@@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL mob_abyssalAI : public ScriptedAI
}
}
- void EnterCombat(Unit*) {DoZoneInCombat();}
+ void EnterCombat(Unit* who) {DoZoneInCombat();}
void AttackStart(Unit *who) {if(!trigger) ScriptedAI::AttackStart(who);}
void MoveInLineOfSight(Unit *who) {if(!trigger) ScriptedAI::MoveInLineOfSight(who);}
@@ -170,19 +170,19 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
{
boss_magtheridonAI(Creature *c) : ScriptedAI(c)
{
- pInstance =(ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance =m_creature->GetInstanceData();
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
// target 7, random target with certain entry spell, need core fix
SpellEntry *TempSpell;
- TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_BLAZE_TARGET);
+ TempSpell = GET_SPELL(SPELL_BLAZE_TARGET);
if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 6)
{
TempSpell->EffectImplicitTargetA[0] = 6;
TempSpell->EffectImplicitTargetB[0] = 0;
}
- TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_QUAKE_TRIGGER);
+ TempSpell = GET_SPELL(SPELL_QUAKE_TRIGGER);
if(TempSpell && TempSpell->EffectTriggerSpell[0] != SPELL_QUAKE_KNOCKBACK)
{
TempSpell->EffectTriggerSpell[0] = SPELL_QUAKE_KNOCKBACK;
@@ -289,7 +289,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
DoScriptText(SAY_DEATH, m_creature);
}
- void MoveInLineOfSight(Unit*) {}
+ void MoveInLineOfSight(Unit* who) {}
void AttackStart(Unit *who)
{
@@ -368,7 +368,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
if(summon)
{
- ((mob_abyssalAI*)summon->AI())->SetTrigger(2);
+ CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(2);
m_creature->CastSpell(summon, SPELL_BLAZE_TARGET, true);
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
}
@@ -398,7 +398,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
float x, y, z;
target->GetPosition(x, y, z);
Creature *summon = m_creature->SummonCreature(MOB_ABYSSAL, x, y, z, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
- if(summon) ((mob_abyssalAI*)summon->AI())->SetTrigger(1);
+ if(summon) CAST_AI(mob_abyssalAI, summon->AI())->SetTrigger(1);
}
Debris_Timer = 10000;
}else Debris_Timer -= diff;
@@ -412,7 +412,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
{
mob_hellfire_channelerAI(Creature *c) : ScriptedAI(c)
{
- pInstance =(ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance =m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
@@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
void JustSummoned(Creature *summon) {summon->AI()->AttackStart(m_creature->getVictim());}
- void MoveInLineOfSight(Unit*) {}
+ void MoveInLineOfSight(Unit* who) {}
void DamageTaken(Unit*, uint32 &damage)
{
@@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
m_creature->CastSpell(m_creature, SPELL_SOUL_TRANSFER, true);
}
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
if(pInstance)
pInstance->SetData(DATA_CHANNELER_EVENT, DONE);
@@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
//Manticron Cube
bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO)
{
- ScriptedInstance* pInstance =(ScriptedInstance*)_GO->GetInstanceData();
+ ScriptedInstance* pInstance =_GO->GetInstanceData();
if(!pInstance) return true;
if(pInstance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true;
Creature *Magtheridon =Unit::GetCreature(*_GO, pInstance->GetData64(DATA_MAGTHERIDON));
@@ -516,7 +516,7 @@ bool GOHello_go_Manticron_Cube(Player *player, GameObject* _GO)
player->InterruptNonMeleeSpells(false);
player->CastSpell(player, SPELL_SHADOW_GRASP, true);
player->CastSpell(player, SPELL_SHADOW_GRASP_VISUAL, false);
- ((boss_magtheridonAI*)Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID());
+ CAST_AI(boss_magtheridonAI, Magtheridon->AI())->SetClicker(_GO->GetGUID(), player->GetGUID());
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
index 2506d2a56aa..6eeb07d1448 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
@@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI
{
boss_grand_warlock_nethekurseAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -304,7 +304,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI
{
mob_fel_orc_convertAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI
Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE));
if (pKurse && m_creature->GetDistance(pKurse) < 45.0f)
{
- ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonAggro();
+ CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonAggro();
if (pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS )
return;
@@ -350,7 +350,7 @@ struct TRINITY_DLL_DECL mob_fel_orc_convertAI : public ScriptedAI
{
Creature *pKurse = Unit::GetCreature(*m_creature,pInstance->GetData64(DATA_NETHEKURSE));
if (pKurse)
- ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonDeath();
+ CAST_AI(boss_grand_warlock_nethekurseAI, pKurse->AI())->DoYellForPeonDeath();
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
index a225293a48e..bdedc6b4fde 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
@@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
{
boss_warbringer_omroggAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
DoScriptText(YELL_DIE_L, Left);
- ((mob_omrogg_headsAI*)((Creature*)Right)->AI())->DoDeathYell();
+ CAST_AI(mob_omrogg_headsAI, CAST_CRE(Right)->AI())->DoDeathYell();
}
if (pInstance)
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
index 562783b93fb..276089a91ee 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
@@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI
{
boss_warchief_kargath_bladefistAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI
{
(*temp).GetMotionMaster()->Clear(true);
m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- ((Creature*)temp)->RemoveCorpse();
+ CAST_CRE(temp)->RemoveCorpse();
}
}
adds.clear();
@@ -177,7 +177,7 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI
{
(*temp).GetMotionMaster()->Clear(true);
m_creature->DealDamage(temp,temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- ((Creature*)temp)->RemoveCorpse();
+ CAST_CRE(temp)->RemoveCorpse();
}
}
assassins.clear();
diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
index 9bf0e77420f..a32112ed709 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
@@ -226,14 +226,14 @@ CreatureAI* GetAI_npc_wounded_blood_elf(Creature* pCreature)
welfAI->FillPointMovementListForCreature();
- return (CreatureAI*)welfAI;
+ return welfAI;
}
bool QuestAccept_npc_wounded_blood_elf(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == QUEST_ROAD_TO_FALCON_WATCH)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
// Change faction so mobs attack
creature->setFaction(775);
}
diff --git a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
index 1d27afe8977..51b22fd934a 100644
--- a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
+++ b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
@@ -111,8 +111,8 @@ struct TRINITY_DLL_DECL npc_greengill_slaveAI : public ScriptedAI
if(PlayerGUID)
{
Unit* plr = Unit::GetUnit((*m_creature), PlayerGUID);
- if(plr && ((Player*)plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE)
- ((Player*)plr)->KilledMonster(25086, m_creature->GetGUID());
+ if(plr && CAST_PLR(plr)->GetQuestStatus(QUESTG) == QUEST_STATUS_INCOMPLETE)
+ CAST_PLR(plr)->KilledMonster(25086, m_creature->GetGUID());
}
DoCast(m_creature, ENRAGE);
Unit* Myrmidon = me->FindNearestCreature(DM, 70);
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
index d60e057c296..08df637eb04 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
@@ -284,7 +284,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI
Creature *pMidnight = Unit::GetCreature(*m_creature, Midnight);
if(pMidnight && pMidnight->GetTypeId() == TYPEID_UNIT)
{
- ((boss_midnightAI*)(pMidnight->AI()))->Mount(m_creature);
+ CAST_AI(boss_midnightAI, (pMidnight->AI()))->Mount(m_creature);
m_creature->SetHealth(pMidnight->GetHealth());
DoResetThreat();
}
@@ -303,7 +303,7 @@ struct TRINITY_DLL_DECL boss_attumenAI : public ScriptedAI
void boss_midnightAI::SetMidnight(Creature *pAttumen, uint64 value)
{
- ((boss_attumenAI*)pAttumen->AI())->Midnight = value;
+ CAST_AI(boss_attumenAI, pAttumen->AI())->Midnight = value;
}
CreatureAI* GetAI_boss_attumen(Creature *_Creature)
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
index f00b3650e9f..9a8b0bf27b6 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
{
AddId[i] = 0;
}
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -340,7 +340,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI
for(uint8 i = 0; i < 4; ++i)
GuestGUID[i] = 0;
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void Reset()
@@ -360,7 +360,7 @@ struct TRINITY_DLL_DECL boss_moroes_guestAI : public ScriptedAI
{
for(uint8 i = 0; i < 3; ++i)
{
- uint64 GUID = ((boss_moroesAI*)Moroes->AI())->AddGUID[i];
+ uint64 GUID = CAST_AI(boss_moroesAI, Moroes->AI())->AddGUID[i];
if(GUID && GUID != m_creature->GetGUID())
GuestGUID[i+1] = GUID;
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
index c4e666d45f7..12c7c3fa2ad 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
@@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
{
boss_nightbaneAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Intro = true;
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
index 882fbe7b7da..66005746bbd 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
@@ -130,7 +130,7 @@ struct TRINITY_DLL_DECL netherspite_infernalAI : public ScriptedAI
{
Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar);
if(pMalchezaar)
- ((Creature*)pMalchezaar)->AI()->KilledUnit(who);
+ CAST_CRE(pMalchezaar)->AI()->KilledUnit(who);
}
void SpellHit(Unit *who, const SpellEntry *spell)
@@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
{
boss_malchezaarAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -380,8 +380,8 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI
Infernal->SetUInt32Value(UNIT_FIELD_DISPLAYID, INFERNAL_MODEL_INVISIBLE);
Infernal->setFaction(m_creature->getFaction());
if(point)
- ((netherspite_infernalAI*)Infernal->AI())->point=point;
- ((netherspite_infernalAI*)Infernal->AI())->malchezaar=m_creature->GetGUID();
+ CAST_AI(netherspite_infernalAI, Infernal->AI())->point=point;
+ CAST_AI(netherspite_infernalAI, Infernal->AI())->malchezaar=m_creature->GetGUID();
infernals.push_back(Infernal->GetGUID());
DoCast(Infernal, SPELL_INFERNAL_RELAY);
@@ -621,7 +621,7 @@ void netherspite_infernalAI::Cleanup()
Unit *pMalchezaar = Unit::GetUnit(*m_creature, malchezaar);
if(pMalchezaar && pMalchezaar->isAlive())
- ((boss_malchezaarAI*)((Creature*)pMalchezaar)->AI())->Cleanup(m_creature, point);
+ CAST_AI(boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(m_creature, point);
}
CreatureAI* GetAI_netherspite_infernal(Creature *_Creature)
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
index d358f9585c1..015a19087ab 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI
{
boss_aranAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
index a77f8d052b1..24981a903c4 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
@@ -65,7 +65,7 @@ struct TRINITY_DLL_DECL mob_kilrekAI : public ScriptedAI
{
mob_kilrekAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -157,7 +157,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
{
for(uint8 i = 0; i < 2; ++i)
PortalGUID[i] = 0;
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
Creature* Chains = m_creature->SummonCreature(CREATURE_DEMONCHAINS, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 21000);
if(Chains)
{
- ((mob_demon_chainAI*)Chains->AI())->SacrificeGUID = target->GetGUID();
+ CAST_AI(mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true);
switch(rand()%2)
{
diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
index 67dd35b46a0..5ae57e95614 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
@@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL boss_dorotheeAI : public ScriptedAI
{
boss_dorotheeAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -220,7 +220,7 @@ struct TRINITY_DLL_DECL mob_titoAI : public ScriptedAI
Creature* Dorothee = (Unit::GetCreature((*m_creature), DorotheeGUID));
if(Dorothee && Dorothee->isAlive())
{
- ((boss_dorotheeAI*)Dorothee->AI())->TitoDied = true;
+ CAST_AI(boss_dorotheeAI, Dorothee->AI())->TitoDied = true;
DoScriptText(SAY_DOROTHEE_TITO_DEATH, Dorothee);
}
}
@@ -247,7 +247,7 @@ void boss_dorotheeAI::SummonTito()
if(Tito)
{
DoScriptText(SAY_DOROTHEE_SUMMON, m_creature);
- ((mob_titoAI*)Tito->AI())->DorotheeGUID = m_creature->GetGUID();
+ CAST_AI(mob_titoAI, Tito->AI())->DorotheeGUID = m_creature->GetGUID();
Tito->AI()->AttackStart(m_creature->getVictim());
SummonedTito = true;
TitoDied = false;
@@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_strawmanAI : public ScriptedAI
{
boss_strawmanAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -355,7 +355,7 @@ struct TRINITY_DLL_DECL boss_tinheadAI : public ScriptedAI
{
boss_tinheadAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -448,7 +448,7 @@ struct TRINITY_DLL_DECL boss_roarAI : public ScriptedAI
{
boss_roarAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -540,7 +540,7 @@ struct TRINITY_DLL_DECL boss_croneAI : public ScriptedAI
{
boss_croneAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -729,7 +729,7 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI
{
boss_bigbadwolfAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -920,7 +920,7 @@ struct TRINITY_DLL_DECL boss_julianneAI : public ScriptedAI
{
boss_julianneAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
EntryYellTimer = 1000;
AggroYellTimer = 10000;
}
@@ -1036,7 +1036,7 @@ struct TRINITY_DLL_DECL boss_romuloAI : public ScriptedAI
{
boss_romuloAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
EntryYellTimer = 8000;
AggroYellTimer = 15000;
}
@@ -1174,8 +1174,8 @@ void boss_julianneAI::DamageTaken(Unit* done_by, uint32 &damage)
{
PretendToDie(m_creature);
IsFakingDeath = true;
- ((boss_romuloAI*)Romulo->AI())->ResurrectTimer = 10000;
- ((boss_romuloAI*)Romulo->AI())->JulianneDead = true;
+ CAST_AI(boss_romuloAI, Romulo->AI())->ResurrectTimer = 10000;
+ CAST_AI(boss_romuloAI, Romulo->AI())->JulianneDead = true;
damage = 0;
return;
}
@@ -1199,8 +1199,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage)
if (Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID)))
{
- ((boss_julianneAI*)Julianne->AI())->RomuloDead = true;
- ((boss_julianneAI*)Julianne->AI())->ResurrectSelfTimer = 10000;
+ CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true;
+ CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectSelfTimer = 10000;
}
damage = 0;
@@ -1227,8 +1227,8 @@ void boss_romuloAI::DamageTaken(Unit* done_by, uint32 &damage)
{
PretendToDie(m_creature);
IsFakingDeath = true;
- ((boss_julianneAI*)Julianne->AI())->ResurrectTimer = 10000;
- ((boss_julianneAI*)Julianne->AI())->RomuloDead = true;
+ CAST_AI(boss_julianneAI, Julianne->AI())->ResurrectTimer = 10000;
+ CAST_AI(boss_julianneAI, Julianne->AI())->RomuloDead = true;
damage = 0;
return;
}
@@ -1279,8 +1279,8 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
if(Romulo)
{
RomuloGUID = Romulo->GetGUID();
- ((boss_romuloAI*)Romulo->AI())->JulianneGUID = m_creature->GetGUID();
- ((boss_romuloAI*)Romulo->AI())->Phase = PHASE_ROMULO;
+ CAST_AI(boss_romuloAI, Romulo->AI())->JulianneGUID = m_creature->GetGUID();
+ CAST_AI(boss_romuloAI, Romulo->AI())->Phase = PHASE_ROMULO;
Romulo->setFaction(16);
if(m_creature->getVictim())
@@ -1317,11 +1317,11 @@ void boss_julianneAI::UpdateAI(const uint32 diff)
if(ResurrectTimer < diff)
{
Creature* Romulo = (Unit::GetCreature((*m_creature), RomuloGUID));
- if(Romulo && ((boss_romuloAI*)Romulo->AI())->IsFakingDeath)
+ if(Romulo && CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath)
{
DoScriptText(SAY_JULIANNE_RESURRECT, m_creature);
Resurrect(Romulo);
- ((boss_romuloAI*)Romulo->AI())->IsFakingDeath = false;
+ CAST_AI(boss_romuloAI, Romulo->AI())->IsFakingDeath = false;
RomuloDead = false;
ResurrectTimer = 10000;
}
@@ -1371,11 +1371,11 @@ void boss_romuloAI::UpdateAI(const uint32 diff)
if(ResurrectTimer < diff)
{
Creature* Julianne = (Unit::GetCreature((*m_creature), JulianneGUID));
- if(Julianne && ((boss_julianneAI*)Julianne->AI())->IsFakingDeath)
+ if(Julianne && CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath)
{
DoScriptText(SAY_ROMULO_RESURRECT, m_creature);
Resurrect(Julianne);
- ((boss_julianneAI*)Julianne->AI())->IsFakingDeath = false;
+ CAST_AI(boss_julianneAI, Julianne->AI())->IsFakingDeath = false;
JulianneDead = false;
ResurrectTimer = 10000;
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
index 746de59cbf9..e984bea31c2 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
@@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI
npc_barnesAI(Creature* c) : npc_escortAI(c)
{
RaidWiped = false;
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -372,13 +372,13 @@ CreatureAI* GetAI_npc_barnesAI(Creature* _Creature)
for(uint8 i = 0; i < 6; ++i)
Barnes_AI->AddWaypoint(i, StageLocations[i][0], StageLocations[i][1], 90.465);
- return ((CreatureAI*)Barnes_AI);
+ return (Barnes_AI);
}
bool GossipHello_npc_barnes(Player* player, Creature* _Creature)
{
// Check for death of Moroes.
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if(pInstance && (pInstance->GetData(DATA_MOROES_EVENT) >= DONE))
{
player->ADD_GOSSIP_ITEM(0, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -390,7 +390,7 @@ bool GossipHello_npc_barnes(Player* player, Creature* _Creature)
player->ADD_GOSSIP_ITEM(5, OZ_GM_GOSSIP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
}
- if(!((npc_barnesAI*)_Creature->AI())->RaidWiped)
+ if(!CAST_AI(npc_barnesAI, _Creature->AI())->RaidWiped)
player->SEND_GOSSIP_MENU(8970, _Creature->GetGUID());
else
player->SEND_GOSSIP_MENU(8975, _Creature->GetGUID());
@@ -409,21 +409,21 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender,
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->CLOSE_GOSSIP_MENU();
- ((npc_barnesAI*)_Creature->AI())->StartEvent();
+ CAST_AI(npc_barnesAI, _Creature->AI())->StartEvent();
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->CLOSE_GOSSIP_MENU();
- ((npc_barnesAI*)_Creature->AI())->Event = EVENT_OZ;
+ CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_OZ;
outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_OZ",player->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+4:
player->CLOSE_GOSSIP_MENU();
- ((npc_barnesAI*)_Creature->AI())->Event = EVENT_HOOD;
+ CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_HOOD;
outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_HOOD",player->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+5:
player->CLOSE_GOSSIP_MENU();
- ((npc_barnesAI*)_Creature->AI())->Event = EVENT_RAJ;
+ CAST_AI(npc_barnesAI, _Creature->AI())->Event = EVENT_RAJ;
outstring_log("TSCR: player (GUID %i) manually set Opera event to EVENT_RAJ",player->GetGUID());
break;
}
@@ -441,7 +441,7 @@ bool GossipSelect_npc_barnes(Player *player, Creature *_Creature, uint32 sender,
bool GossipHello_npc_berthold(Player* player, Creature* _Creature)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
// Check if Shade of Aran is dead or not
if(pInstance && (pInstance->GetData(DATA_SHADEOFARAN_EVENT) >= DONE))
player->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -486,7 +486,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
{
npc_image_of_medivhAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -557,21 +557,21 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
return 10000;
case 2:
if(arca)
- ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL);
+ CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_2,LANG_UNIVERSAL,NULL);
return 20000;
case 3:
m_creature->MonsterYell(SAY_DIALOG_MEDIVH_3,LANG_UNIVERSAL,NULL);
return 10000;
case 4:
if(arca)
- ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL);
+ CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL);
return 20000;
case 5:
m_creature->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, NULL);
return 20000;
case 6:
if(arca)
- ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL);
+ CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL);
return 10000;
case 7:
FireArcanagosTimer = 500;
@@ -589,7 +589,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
return 1000;
case 11:
if(arca)
- ((Creature*)arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL);
+ CAST_CRE(arca)->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL);
return 5000;
case 12:
arca->GetMotionMaster()->MovePoint(0, -11010.82,-1761.18, 156.47);
@@ -606,7 +606,7 @@ struct TRINITY_DLL_DECL npc_image_of_medivhAI : public ScriptedAI
if(map->IsDungeon())
{
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
+ InstanceMap::PlayerList const &PlayerList = map->GetPlayers();
for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
if(i->getSource()->isAlive())
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
index 1d27ddd6e2d..fe62b55f0a4 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
@@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
{
boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic();
+ pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
@@ -450,7 +450,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenixAI : public ScriptedAI
{
mob_felkael_phoenixAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
index ead9e36eed6..e101d9713c5 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
@@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_priestess_delrissaAI : public ScriptedAI
{
boss_priestess_delrissaAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Heroic = c->GetMap()->IsHeroic();
}
@@ -358,7 +358,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI
boss_priestess_guestAI(Creature* c) : ScriptedAI(c)
{
Group.clear();
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
AcquireGUIDs();
}
@@ -392,7 +392,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI
{
pInstance->SetData(DATA_DELRISSA_DEATH_COUNT, 1);
- ((boss_priestess_delrissaAI*)Delrissa->AI())->KilledLackey();
+ CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->KilledLackey();
if (!Delrissa->isAlive() && pInstance->GetData(DATA_DELRISSA_DEATH_COUNT) > 3)
Delrissa->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
@@ -423,7 +423,7 @@ struct TRINITY_DLL_DECL boss_priestess_guestAI : public ScriptedAI
Creature* Delrissa = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_DELRISSA)));
if (Delrissa)
{
- Group = ((boss_priestess_delrissaAI*)Delrissa->AI())->Adds;
+ Group = CAST_AI(boss_priestess_delrissaAI, Delrissa->AI())->Adds;
Add* dAdd = new Add(Delrissa->GetEntry(), Delrissa->GetGUID());
Group.push_back(dAdd);
}
@@ -649,13 +649,13 @@ struct TRINITY_DLL_DECL boss_ellris_duskhallowAI : public boss_priestess_guestAI
/*void mob_fizzleAI::JustDied(Unit* killer)
{
if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID)))
- ((boss_ellris_duskhallowAI*)Ellris->AI())->ImpGUID = 0;
+ CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->ImpGUID = 0;
}
void mob_fizzleAI::KilledUnit(Unit* victim)
{
if(Creature* Ellris = (Unit::GetCreature(*m_creature, EllrisGUID)))
- ((boss_ellris_duskhallowAI*)Ellris->AI())->KilledUnit(victim);
+ CAST_AI(boss_ellris_duskhallowAI, Ellris->AI())->KilledUnit(victim);
}*/
#define SPELL_KNOCKDOWN 11428
@@ -984,7 +984,7 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI
Creature* Sliver = m_creature->SummonCreature(CREATURE_SLIVER, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (Sliver)
{
- //((mob_sliverAI*)Sliver->AI())->GaraxxasGUID = m_creature->GetGUID();
+ //CAST_AI(mob_sliverAI, Sliver->AI())->GaraxxasGUID = m_creature->GetGUID();
//SliverGUID = Sliver->GetGUID();
HasSummonedSliver = true;
}
@@ -1043,13 +1043,13 @@ struct TRINITY_DLL_DECL boss_garaxxasAI : public boss_priestess_guestAI
/*void mob_sliverAI::JustDied(Unit* killer)
{
if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID)))
- ((boss_garaxxasAI*)Garaxxas->AI())->SliverGUID = 0;
+ CAST_AI(boss_garaxxasAI, Garaxxas->AI())->SliverGUID = 0;
}
void mob_sliverAI::KilledUnit(Unit* victim)
{
if(Creature* Garaxxas = (Unit::GetCreature(*m_creature, GaraxxasGUID)))
- ((boss_garaxxasAI*)Garaxxas->AI())->KilledUnit(victim);
+ CAST_AI(boss_garaxxasAI, Garaxxas->AI())->KilledUnit(victim);
}*/
#define SPELL_WINDFURY_TOTEM 27621
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
index d057f0d8932..b23abd1da2a 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
{
boss_selin_fireheartAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Crystals.clear();
//GUIDs per instance is static, so we only need to load them once.
@@ -98,7 +98,7 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI
if (pUnit)
{
if(!pUnit->isAlive())
- ((Creature*)pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc.
+ CAST_CRE(pUnit)->Respawn(); // Let MaNGOS handle setting death state, etc.
// Only need to set unselectable flag. You can't attack unselectable units so non_attackable flag is not necessary here.
pUnit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -340,17 +340,17 @@ struct TRINITY_DLL_DECL mob_fel_crystalAI : public ScriptedAI
void JustDied(Unit* killer)
{
- if (ScriptedInstance* pInstance = ((ScriptedInstance*)m_creature->GetInstanceData()))
+ if (ScriptedInstance* pInstance = (m_creature->GetInstanceData()))
{
Creature* Selin = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_SELIN)));
if (Selin && Selin->isAlive())
{
- if (((boss_selin_fireheartAI*)Selin->AI())->CrystalGUID == m_creature->GetGUID())
+ if(CAST_AI(boss_selin_fireheartAI, Selin->AI())->CrystalGUID == m_creature->GetGUID())
{
// Set this to false if we are the creature that Selin is draining so his AI flows properly
- ((boss_selin_fireheartAI*)Selin->AI())->DrainingCrystal = false;
- ((boss_selin_fireheartAI*)Selin->AI())->IsDraining = false;
- ((boss_selin_fireheartAI*)Selin->AI())->EmpowerTimer = 10000;
+ CAST_AI(boss_selin_fireheartAI, Selin->AI())->DrainingCrystal = false;
+ CAST_AI(boss_selin_fireheartAI, Selin->AI())->IsDraining = false;
+ CAST_AI(boss_selin_fireheartAI, Selin->AI())->EmpowerTimer = 10000;
if (Selin->getVictim())
{
Selin->AI()->AttackStart(Selin->getVictim());
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
index bad86829474..fb31a3783da 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI
{
boss_vexallusAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic();
+ pInstance = (c->GetInstanceData()); Heroic = c->GetMap()->IsHeroic();
Heroic = c->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
index db5ad5214d2..00b6d28d6b0 100644
--- a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
+++ b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
@@ -71,7 +71,7 @@ struct TRINITY_DLL_DECL boss_noxxionAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(13456, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
index 87f6cd8796e..c82dc52b6e6 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
@@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI
{
boss_golemaggAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -118,7 +118,7 @@ struct TRINITY_DLL_DECL mob_core_ragerAI : public ScriptedAI
{
mob_core_ragerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 Mangle_Timer;
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
index 3da7134c471..7fef37d24c9 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI
{
boss_majordomoAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
index d62319b2617..77d0da94a1b 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
@@ -228,7 +228,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI
{
Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
}
}
@@ -249,7 +249,7 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI
{
Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
}
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
index dc5b10a25d0..5c61ef9225d 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
@@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
{
boss_sulfuronAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 Darkstrike_Timer;
@@ -126,7 +126,7 @@ struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
{
mob_flamewaker_priestAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 Heal_Timer;
diff --git a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
index 86274a6aed4..26af428c2e7 100644
--- a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
+++ b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
@@ -285,7 +285,7 @@ public:
if(!PlayerGUID)
return;
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
player->FailQuest(10965);
@@ -296,7 +296,7 @@ public:
void EnterEvadeMode()
{
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(player && player->isInCombat() && player->getAttackerForHelper())
{
AttackStart(player->getAttackerForHelper());
@@ -345,7 +345,7 @@ public:
{
if(checkPlayer_Timer < diff)
{
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(player && player->isInCombat() && player->getAttackerForHelper())
AttackStart(player->getAttackerForHelper());
checkPlayer_Timer = 1000;
@@ -355,7 +355,7 @@ public:
if(Event_onWait && Event_Timer < diff)
{
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(!player || (player && player->GetQuestStatus(10965) == QUEST_STATUS_NONE))
{
m_creature->setDeathState(JUST_DIED);
@@ -523,7 +523,7 @@ bool QuestAccept_npc_clintar_dreamwalker(Player *player, Creature *creature, Que
{
Creature *clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000);
if(clintar_spirit)
- ((npc_clintar_spiritAI*)clintar_spirit->AI())->StartEvent(player);
+ CAST_AI(npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(player);
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
index 8b5da811e12..49317b34ce8 100644
--- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
+++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
@@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI
void SpellHit(Unit *caster, const SpellEntry* spell)
{ // we can feed him without any quest
- if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && ((Player*)caster)->GetTeam() == HORDE)
+ if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && CAST_PLR(caster)->GetTeam() == HORDE)
{
STATE = 1;
player = caster->GetGUID();
@@ -139,8 +139,8 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI
case 3:
STATE = 4; //go home
Unit *plr = Unit::GetUnit((*m_creature),player);
- if(plr && ((Player*)plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE)
- ((Player*)plr)->CompleteQuest(11129);
+ if(plr && CAST_PLR(plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE)
+ CAST_PLR(plr)->CompleteQuest(11129);
float x, y, z, z2, angle;
angle = m_creature->GetAngle(-2146, -430);
m_creature->GetPosition(x,y,z);
diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
index 63f037cf146..1ed6b003504 100644
--- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
+++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
@@ -113,12 +113,12 @@ struct TRINITY_DLL_DECL mob_lumpAI : public ScriptedAI
{
if (done_by->GetTypeId() == TYPEID_PLAYER && (m_creature->GetHealth() - damage)*100 / m_creature->GetMaxHealth() < 30)
{
- if (!bReset && ((Player*)done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE)
+ if (!bReset && CAST_PLR(done_by)->GetQuestStatus(9918) == QUEST_STATUS_INCOMPLETE)
{
//Take 0 damage
damage = 0;
- ((Player*)done_by)->AttackStop();
+ CAST_PLR(done_by)->AttackStop();
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->RemoveAllAuras();
m_creature->DeleteThreatList();
@@ -529,14 +529,14 @@ struct TRINITY_DLL_DECL npc_creditmarker_visit_with_ancestorsAI : public Scripte
if(who->GetTypeId() == TYPEID_PLAYER)
{
- if(((Player*)who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE)
+ if(CAST_PLR(who)->GetQuestStatus(10085) == QUEST_STATUS_INCOMPLETE)
{
uint32 creditMarkerId = m_creature->GetEntry();
if((creditMarkerId >= 18840) && (creditMarkerId <= 18843))
{
// 18840: Sunspring, 18841: Laughing, 18842: Garadar, 18843: Bleeding
- if(!((Player*)who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId))
- ((Player*)who)->KilledMonster(creditMarkerId, m_creature->GetGUID());
+ if(!CAST_PLR(who)->GetReqKillOrCastCurrentCount(10085, creditMarkerId))
+ CAST_PLR(who)->KilledMonster(creditMarkerId, m_creature->GetGUID());
}
}
}
@@ -586,7 +586,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI
if(!who || PlayerGUID)
return;
- if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(((Player *)who), 30) && ((Player *)who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE)
+ if(!PlayerGUID && who->GetTypeId() == TYPEID_PLAYER && m_creature->IsWithinDistInMap(who, 30) && CAST_PLR(who)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE)
{
PlayerGUID = who->GetGUID();
return;
@@ -604,7 +604,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI
if(fleeing && m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() != FLEEING_MOTION_TYPE)
fleeing = false;
- Player *player = (Player *)Unit::GetUnit((*m_creature), PlayerGUID);
+ Player *player = Unit::GetPlayer(PlayerGUID);
if(player && m_creature->IsWithinDistInMap(player, 30))
{
if(!fleeing)
@@ -634,7 +634,7 @@ struct TRINITY_DLL_DECL mob_sparrowhawkAI : public ScriptedAI
{
if (caster->GetTypeId() == TYPEID_PLAYER)
{
- if(spell->Id == SPELL_SPARROWHAWK_NET && ((Player*)caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE)
+ if(spell->Id == SPELL_SPARROWHAWK_NET && CAST_PLR(caster)->GetQuestStatus(10987) == QUEST_STATUS_INCOMPLETE)
{
m_creature->CastSpell(caster, SPELL_ITEM_CAPTIVE_SPARROWHAWK, true);
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp
index 6b0d5cf65fe..ecc9a8d8d03 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp
@@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
void UpdateAI(const uint32 diff)
{
- if(!UpdateVictim() || !CheckInRoom())
+ if(!UpdateCombatState() || !CheckInRoom())
return;
events.Update(diff);
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
index 1ab7c5e3334..8ce017a936e 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
@@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI
void UpdateAI(const uint32 diff)
{
- if(!UpdateVictim() || !CheckInRoom())
+ if(!UpdateCombatState() || !CheckInRoom())
return;
events.Update(diff);
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
index 3a001d4068b..05dea45ed25 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
@@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI
}
}
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
_JustDied();
me->CastSpell(me, SPELL_DIES, true);
@@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI
events.Update(diff);
- if(phase != PHASE_BIRTH && !UpdateVictim() || !CheckInRoom())
+ if(phase != PHASE_BIRTH && !UpdateCombatState() || !CheckInRoom())
return;
if(phase == PHASE_GROUND)
diff --git a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
index 1b70d5b1dee..c8c7651dbe1 100644
--- a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
+++ b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
@@ -103,20 +103,20 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI
switch( m_creature->GetEntry() )
{
case ENTRY_BNAAR_C_CONSOLE:
- ((Player*)p)->FailQuest(10299);
- ((Player*)p)->FailQuest(10329);
+ CAST_PLR(p)->FailQuest(10299);
+ CAST_PLR(p)->FailQuest(10329);
break;
case ENTRY_CORUU_C_CONSOLE:
- ((Player*)p)->FailQuest(10321);
- ((Player*)p)->FailQuest(10330);
+ CAST_PLR(p)->FailQuest(10321);
+ CAST_PLR(p)->FailQuest(10330);
break;
case ENTRY_DURO_C_CONSOLE:
- ((Player*)p)->FailQuest(10322);
- ((Player*)p)->FailQuest(10338);
+ CAST_PLR(p)->FailQuest(10322);
+ CAST_PLR(p)->FailQuest(10338);
break;
case ENTRY_ARA_C_CONSOLE:
- ((Player*)p)->FailQuest(10323);
- ((Player*)p)->FailQuest(10365);
+ CAST_PLR(p)->FailQuest(10323);
+ CAST_PLR(p)->FailQuest(10365);
break;
}
}
@@ -255,7 +255,7 @@ struct TRINITY_DLL_DECL npc_manaforge_control_consoleAI : public ScriptedAI
{
Unit* u = Unit::GetUnit((*m_creature),someplayer);
if( u && u->GetTypeId() == TYPEID_PLAYER )
- ((Player*)u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID());
+ CAST_PLR(u)->KilledMonster(m_creature->GetEntry(),m_creature->GetGUID());
DoCast(m_creature,SPELL_DISABLE_VISUAL);
}
if( goConsole )
@@ -324,8 +324,8 @@ bool GOHello_go_manaforge_control_console(Player *player, GameObject* _GO)
if( manaforge )
{
- ((npc_manaforge_control_consoleAI*)manaforge->AI())->someplayer = player->GetGUID();
- ((npc_manaforge_control_consoleAI*)manaforge->AI())->goConsole = _GO->GetGUID();
+ CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->someplayer = player->GetGUID();
+ CAST_AI(npc_manaforge_control_consoleAI, manaforge->AI())->goConsole = _GO->GetGUID();
_GO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
}
return true;
@@ -660,7 +660,7 @@ bool AreaTrigger_at_commander_dawnforge(Player *player, AreaTriggerEntry *at)
if (!Dawnforge)
return false;
- if (((npc_commander_dawnforgeAI*)Dawnforge->AI())->CanStartEvent(player))
+ if(CAST_AI(npc_commander_dawnforgeAI, Dawnforge->AI())->CanStartEvent(player))
return true;
}
return false;
@@ -788,7 +788,7 @@ struct TRINITY_DLL_DECL mob_phase_hunterAI : public ScriptedAI
Unit* target = Unit::GetUnit((*m_creature), PlayerGUID);
if(target && !Weak && m_creature->GetHealth() < (m_creature->GetMaxHealth() / 100 * WeakPercent)
- && ((Player*)target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE)
+ && CAST_PLR(target)->GetQuestStatus(10190) == QUEST_STATUS_INCOMPLETE)
{
DoScriptText(EMOTE_WEAK, m_creature);
Weak = true;
@@ -851,7 +851,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI
if (PlayerGUID)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(Q_ALMABTRIEB);
+ CAST_PLR(player)->FailQuest(Q_ALMABTRIEB);
}
}
@@ -878,7 +878,7 @@ struct TRINITY_DLL_DECL npc_bessyAI : public npc_escortAI
case 12:
if (player)
{
- ((Player*)player)->GroupEventHappens(Q_ALMABTRIEB, m_creature);
+ CAST_PLR(player)->GroupEventHappens(Q_ALMABTRIEB, m_creature);
Completed = true;
}
{Unit* Thadell = me->FindNearestCreature(N_THADELL, 30);
@@ -917,7 +917,7 @@ bool QuestAccept_npc_bessy(Player* player, Creature* creature, Quest const* ques
{
creature->setFaction(113);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -941,7 +941,7 @@ CreatureAI* GetAI_npc_bessy(Creature *_Creature)
bessyAI->AddWaypoint(12, 2297.68, 2266.79, 95.07,4000);
bessyAI->AddWaypoint(13, 2297.67, 2266.76, 95.07,4000);
- return (CreatureAI*)bessyAI;
+ return bessyAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
index 5b328aee776..5a9d17db745 100644
--- a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
+++ b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
@@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL npc_shenthulAI : public ScriptedAI
{
if( Unit* temp = Unit::GetUnit((*m_creature),playerGUID) )
if( temp->GetTypeId() == TYPEID_PLAYER )
- ((Player*)temp)->FailQuest(QUEST_2460);
+ CAST_PLR(temp)->FailQuest(QUEST_2460);
Reset();
} else Reset_Timer -= diff;
@@ -137,8 +137,8 @@ bool QuestAccept_npc_shenthul(Player* player, Creature* creature, Quest const* q
{
if( quest->GetQuestId() == QUEST_2460 )
{
- ((npc_shenthulAI*)creature->AI())->CanTalk = true;
- ((npc_shenthulAI*)creature->AI())->playerGUID = player->GetGUID();
+ CAST_AI(npc_shenthulAI, creature->AI())->CanTalk = true;
+ CAST_AI(npc_shenthulAI, creature->AI())->playerGUID = player->GetGUID();
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp
index eef07d16591..8680218e992 100644
--- a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp
+++ b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp
@@ -90,7 +90,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {}
case 45:
DoScriptText(SAY_WIN, m_creature, player);
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER,m_creature);
break;
case 46:
DoScriptText(SAY_END, m_creature, player);
@@ -115,7 +115,7 @@ npc_willixAI(Creature *c) : npc_escortAI(c) {}
if (PlayerGUID)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_WILLIX_THE_IMPORTER);
+ CAST_PLR(player)->FailQuest(QUEST_WILLIX_THE_IMPORTER);
}
}
@@ -129,7 +129,7 @@ bool QuestAccept_npc_willix(Player* player, Creature* creature, Quest const* que
{
if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
DoScriptText(SAY_READY, creature, player);
creature->setFaction(113);
}
@@ -189,7 +189,7 @@ CreatureAI* GetAI_npc_willix(Creature *_Creature)
thisAI->AddWaypoint(45, 1948.35, 1571.35, 80.96, 30000);
thisAI->AddWaypoint(46, 1947.02, 1566.42, 81.80, 30000);
- return (CreatureAI*)thisAI;
+ return thisAI;
}
void AddSC_razorfen_kraul()
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
index 0546bc4db95..68e18201b0f 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
@@ -134,10 +134,10 @@ struct TRINITY_DLL_DECL mob_wisp_invisAI : public ScriptedAI
{
Creaturetype = delay = spell = spell2 = 0;
//that's hack but there are no info about range of this spells in dbc
- SpellEntry *wisp = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_BLUE);
+ SpellEntry *wisp = GET_SPELL(SPELL_WISP_BLUE);
if (wisp)
wisp->rangeIndex = 6; //100 yards
- SpellEntry *port = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_WISP_FLIGHT_PORT);
+ SpellEntry *port = GET_SPELL(SPELL_WISP_FLIGHT_PORT);
if (port)
port->rangeIndex = 6;
}
@@ -321,7 +321,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
{
boss_headless_horsemanAI(Creature *c) : ScriptedAI(c)
{
- SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION);
+ SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION);
if(confl)
{
confl->EffectApplyAuraName[0] = SPELL_AURA_PERIODIC_DAMAGE_PERCENT;
@@ -329,17 +329,17 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
confl->EffectBaseDice[0] = 10;
confl->DmgMultiplier[0] = 1;
}
-/* SpellEntry *confl = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_CONFLAGRATION);
+/* SpellEntry *confl = GET_SPELL(SPELL_CONFLAGRATION);
if(confl)
confl->EffectTriggerSpell[1] = 22587;
- SpellEntry *speed = (SpellEntry*)GetSpellStore()->LookupEntry(22587);
+ SpellEntry *speed = GET_SPELL(22587);
if(speed)
{
speed->Effect[1] = SPELL_EFFECT_APPLY_AURA;
speed->EffectApplyAuraName[1] = SPELL_AURA_MOD_CONFUSE;
}*/
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -424,7 +424,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
case 1: {
Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000);
if(smoke)
- ((mob_wisp_invisAI*)smoke->AI())->SetType(3);
+ CAST_AI(mob_wisp_invisAI, smoke->AI())->SetType(3);
DoCast(m_creature,SPELL_RHYME_BIG);
break;}
case 6:
@@ -469,7 +469,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
else { //maybe possible when player dies from conflagration
Creature *Head = Unit::GetCreature((*m_creature), headGUID);
if (Head)
- ((mob_headAI*)Head->AI())->SaySound(SAY_PLAYER_DEATH);
+ CAST_AI(mob_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH);
}
}
}
@@ -522,7 +522,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
flame->CastSpell(flame,SPELL_BODY_FLAME,false);
Creature *wisp = DoSpawnCreature(WISP_INVIS,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,60000);
if(wisp)
- ((mob_wisp_invisAI*)wisp->AI())->SetType(4);
+ CAST_AI(mob_wisp_invisAI, wisp->AI())->SetType(4);
if(pInstance)
pInstance->SetData(DATA_HORSEMAN_EVENT, DONE);
}
@@ -628,14 +628,14 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
{
Creature *flame = m_creature->SummonCreature(HELPER,Spawn[0].x,Spawn[0].y,Spawn[0].z,0,TEMPSUMMON_TIMED_DESPAWN,17000);
if(flame)
- ((mob_wisp_invisAI*)flame->AI())->SetType(2);
+ CAST_AI(mob_wisp_invisAI, flame->AI())->SetType(2);
burned = true;
}else burn -= diff;
break;
case 2:
if (conflagrate < diff)
{
- Unit *plr = (Unit*)SelectRandomPlayer(30.0f);
+ Unit *plr = SelectRandomPlayer(30.0f);
if (plr)
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false);
conflagrate = 10000 + rand()%7 * 1000;
@@ -679,8 +679,8 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
Creature* Head = Unit::GetCreature((*m_creature), headGUID);
if (Head && Head->isAlive())
{
- ((mob_headAI*)Head->AI())->Phase = Phase;
- ((mob_headAI*)Head->AI())->Disappear();
+ CAST_AI(mob_headAI, Head->AI())->Phase = Phase;
+ CAST_AI(mob_headAI, Head->AI())->Disappear();
}
return;
}
@@ -718,7 +718,7 @@ void mob_headAI::Disappear()
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->GetMotionMaster()->MoveIdle();
- ((boss_headless_horsemanAI*)body->AI())->returned = true;
+ CAST_AI(boss_headless_horsemanAI, body->AI())->returned = true;
}
}
}
@@ -741,7 +741,7 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI
{
debuff->SetDisplayId(m_creature->GetDisplayId());
debuff->CastSpell(debuff,SPELL_PUMPKIN_AURA_GREEN,false);
- ((mob_wisp_invisAI*)debuff->AI())->SetType(1);
+ CAST_AI(mob_wisp_invisAI, debuff->AI())->SetType(1);
debuffGUID = debuff->GetGUID();
}
sprouted = false;
@@ -807,8 +807,8 @@ bool GOHello_go_loosely_turned_soil(Player *plr, GameObject* soil)
Creature *horseman = soil->SummonCreature(HH_MOUNTED,FlightPoint[20].x,FlightPoint[20].y,FlightPoint[20].z,0,TEMPSUMMON_MANUAL_DESPAWN,0);
if(horseman)
{
- ((boss_headless_horsemanAI*)horseman->AI())->playerGUID = plr->GetGUID();
- ((boss_headless_horsemanAI*)horseman->AI())->FlyMode();
+ CAST_AI(boss_headless_horsemanAI, horseman->AI())->playerGUID = plr->GetGUID();
+ CAST_AI(boss_headless_horsemanAI, horseman->AI())->FlyMode();
}
//}
return true;
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
index 913097c4918..2531d3d6db6 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
@@ -144,7 +144,7 @@ CreatureAI* GetAI_mob_scarlet_trainee(Creature* pCreature)
thisAI->FillPointMovementListForCreature();
- return (CreatureAI*)thisAI;
+ return thisAI;
}
void AddSC_boss_herod()
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
index f062419c6c1..3db07afbfdd 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
@@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_interrogator_vishasAI : public ScriptedAI
{
boss_interrogator_vishasAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp
index 9bbe880cc69..68bdcf9fa10 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_scarlet_commander_mograineAI : public ScriptedAI
{
boss_scarlet_commander_mograineAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
@@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_high_inquisitor_whitemaneAI : public ScriptedAI
{
boss_high_inquisitor_whitemaneAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
index 2262f3dc594..a26a7652e74 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
@@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
{
boss_darkmaster_gandlingAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
@@ -127,79 +127,79 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
DoTeleportPlayer(target, 250.0696,0.3921,84.8408,3.149);
Summoned = m_creature->SummonCreature(16119,254.2325,0.3417,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,257.7133,4.0226,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,258.6702,-2.60656,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
case 1:
DoTeleportPlayer(target, 181.4220,-91.9481,84.8410,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
case 2:
DoTeleportPlayer(target, 95.1547,-1.8173,85.2289,0.043);
Summoned = m_creature->SummonCreature(16119,100.9404,-1.8016,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,101.3729,0.4882,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,101.4596,-4.4740,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
case 3:
DoTeleportPlayer(target, 250.0696,0.3921,72.6722,3.149);
Summoned = m_creature->SummonCreature(16119,240.34481,0.7368,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,240.3633,-2.9520,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,240.6702,3.34949,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
case 4:
DoTeleportPlayer(target, 181.4220,-91.9481,70.7734,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
case 5:
DoTeleportPlayer(target, 106.1541,-1.8994,75.3663,0.043);
Summoned = m_creature->SummonCreature(16119,115.3945,-1.5555,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,257.7133,1.8066,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,258.6702,-5.1001,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
break;
}
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
index 74f7f2a13a1..f8676fc3c8b 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
@@ -47,7 +47,7 @@ struct TRINITY_DLL_DECL boss_theolenkrastinovAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_DOCTORTHEOLENKRASTINOV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
index ff63af2719d..39b16785e43 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
@@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_LADYILLUCIABAROV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
index 4b262f625aa..db070857f0d 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_INSTRUCTORMALICIA_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
index b71bef0be39..faa7efa53a5 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
@@ -73,7 +73,7 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(11439, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
index a1e589cfdb9..966fd3bf6ec 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
Rand1 = 0;
SummonedMinions = DoSpawnCreature(16119, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if(SummonedMinions)
- ((CreatureAI*)SummonedMinions->AI())->AttackStart(victim);
+ (SummonedMinions->AI())->AttackStart(victim);
}
void SummonMages(Unit* victim)
@@ -96,7 +96,7 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
Rand2 = 0;
SummonedMages = DoSpawnCreature(16120, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
if(SummonedMages)
- ((CreatureAI*)SummonedMages->AI())->AttackStart(victim);
+ (SummonedMages->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
index fe9ff752dc7..ffaf56f1c45 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_LORDALEXEIBAROV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
index 62409b26442..1afa0c91fa6 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
@@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_LOREKEEPERPOLKELT_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
index 64172abe45c..6be34592529 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
@@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? ((ScriptedInstance*)m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
if(pInstance)
{
pInstance->SetData(DATA_THERAVENIAN_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
index 3c557118f3b..bf7c122d452 100644
--- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL npc_shadowfang_prisonerAI : public npc_escortAI
{
npc_shadowfang_prisonerAI(Creature *c) : npc_escortAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
uiNpcEntry = c->GetEntry();
}
@@ -106,12 +106,12 @@ CreatureAI* GetAI_npc_shadowfang_prisoner(Creature* pCreature)
prisonerAI->FillPointMovementListForCreature();
- return (CreatureAI*)prisonerAI;
+ return prisonerAI;
}
bool GossipHello_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = (pCreature->GetInstanceData());
if (pInstance && pInstance->GetData(TYPE_FREE_NPC) != DONE && pInstance->GetData(TYPE_RETHILGORE) == DONE)
pPlayer->ADD_GOSSIP_ITEM(0, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -126,7 +126,7 @@ bool GossipSelect_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature,
if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
{
pPlayer->CLOSE_GOSSIP_MENU();
- ((npc_escortAI*)(pCreature->AI()))->Start(false, true, false);
+ CAST_AI(npc_escortAI, (pCreature->AI()))->Start(false, true, false);
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
index 6ba339a4c4b..d87c25c14a7 100644
--- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
@@ -750,7 +750,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
plr->RemoveAurasDueToSpell(SPELL_FOUR);
return 5000;
}else{
- ((Player*)plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100;
+ CAST_PLR(plr)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); Step = 30; return 100;
}break;
case 17: DoScriptText(LORD_ILLIDAN_SAY_5, Illi); return 5000; break;
case 18: DoScriptText(LORD_ILLIDAN_SAY_6, Illi); return 5000; break;
@@ -769,7 +769,7 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
case 25: DoScriptText(OVERLORD_SAY_6, m_creature); return 2000; break;
case 26:
if(plr)
- ((Player*)plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature);
+ CAST_PLR(plr)->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, m_creature);
return 6000; break;
case 27:
{
@@ -832,8 +832,8 @@ bool QuestAccept_npc_overlord_morghor(Player *player, Creature *_Creature, const
{
if(_Quest->GetQuestId() == QUEST_LORD_ILLIDAN_STORMRAGE)
{
- ((npc_overlord_morghorAI*)_Creature->AI())->PlayerGUID = player->GetGUID();
- ((npc_overlord_morghorAI*)_Creature->AI())->StartEvent();
+ CAST_AI(npc_overlord_morghorAI, _Creature->AI())->PlayerGUID = player->GetGUID();
+ CAST_AI(npc_overlord_morghorAI, _Creature->AI())->StartEvent();
return true;
}
return false;
@@ -943,7 +943,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI
case 44: SummonAssassin(); break;
case 50:
DoScriptText(SAY_END, m_creature, player);
- ((Player*)player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_ESCAPE_FROM_COILSKAR_CISTERN, m_creature);
Completed = true;
break;
}
@@ -961,7 +961,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI
case 0: DoScriptText(ASSASSIN_SAY_AGGRO1, CoilskarAssassin, player); break;
case 1: DoScriptText(ASSASSIN_SAY_AGGRO2, CoilskarAssassin, player); break;
}
- ((Creature*)CoilskarAssassin)->AI()->AttackStart(m_creature);
+ CAST_CRE(CoilskarAssassin)->AI()->AttackStart(m_creature);
}
else error_log("TSCR ERROR: Coilskar Assassin couldn't be summmoned");
}
@@ -972,7 +972,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN);
+ CAST_PLR(player)->FailQuest(QUEST_ESCAPE_FROM_COILSKAR_CISTERN);
}
}
@@ -1039,7 +1039,7 @@ CreatureAI* GetAI_npc_earthmender_wildaAI(Creature *_Creature)
earthmender_wildaAI->AddWaypoint(49, -2841.754883, 1289.832520, 6.990304);
earthmender_wildaAI->AddWaypoint(50, -2871.398438, 1302.348145, 6.807335, 8000); // SAY_END
- return (CreatureAI*)earthmender_wildaAI;
+ return earthmender_wildaAI;
}
bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest const* quest)
@@ -1047,7 +1047,7 @@ bool QuestAccept_npc_earthmender_wilda(Player* player, Creature* creature, Quest
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_COILSKAR_CISTERN)
{
creature->setFaction(113);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
}
@@ -1381,12 +1381,13 @@ struct TRINITY_DLL_DECL mob_torloth_the_magnificentAI : public ScriptedAI
switch(slayer->GetTypeId())
{
case TYPEID_UNIT:
- if(((Creature*)slayer)->isPet() && ((Pet*)slayer)->GetOwner()->GetTypeId() == TYPEID_PLAYER)
- ((Player*)((Pet*)slayer->GetOwner()))->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
+ if(Unit *owner = slayer->GetOwner())
+ if(owner->GetTypeId() == TYPEID_PLAYER)
+ CAST_PLR(owner)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
break;
case TYPEID_PLAYER:
- ((Player*)slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
+ CAST_PLR(slayer)->GroupEventHappens(QUEST_BATTLE_OF_THE_CRIMSON_WATCH, m_creature);
break;
}
@@ -1490,14 +1491,14 @@ struct TRINITY_DLL_DECL npc_lord_illidan_stormrageAI : public ScriptedAI
Spawn->GetMotionMaster()->MovePoint(0,x, y, z);
}
}
- ((mob_illidari_spawnAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
+ CAST_AI(mob_illidari_spawnAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
}
if(WavesInfo[WaveCount].CreatureId == 22076) // Torloth
{
- ((mob_torloth_the_magnificentAI*)Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
+ CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->LordIllidanGUID = m_creature->GetGUID();
if(PlayerGUID)
- ((mob_torloth_the_magnificentAI*)Spawn->AI())->AggroTargetGUID = PlayerGUID;
+ CAST_AI(mob_torloth_the_magnificentAI, Spawn->AI())->AggroTargetGUID = PlayerGUID;
}
}
}
@@ -1605,7 +1606,7 @@ void mob_illidari_spawnAI::JustDied(Unit *slayer)
m_creature->RemoveCorpse();
if(Creature* LordIllidan = (Unit::GetCreature(*m_creature, LordIllidanGUID)))
if(LordIllidan)
- ((npc_lord_illidan_stormrageAI*)LordIllidan->AI())->LiveCounter();
+ CAST_AI(npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter();
}
/*#####
@@ -1616,13 +1617,13 @@ bool GOQuestAccept_GO_crystal_prison(Player* plr, GameObject* go, Quest const* q
{
if(quest->GetQuestId() == QUEST_BATTLE_OF_THE_CRIMSON_WATCH )
{
- Unit* Illidan = plr->FindNearestCreature(22083, 50);
+ Creature* Illidan = plr->FindNearestCreature(22083, 50);
- if(Illidan && !(((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted))
+ if(Illidan && !CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted)
{
- ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->PlayerGUID = plr->GetGUID();
- ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->LiveCount = 0;
- ((npc_lord_illidan_stormrageAI*)((Creature*)Illidan)->AI())->EventStarted=true;
+ CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->PlayerGUID = plr->GetGUID();
+ CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->LiveCount = 0;
+ CAST_AI(npc_lord_illidan_stormrageAI, Illidan->AI())->EventStarted=true;
}
}
return true;
@@ -1742,10 +1743,10 @@ struct TRINITY_DLL_DECL npc_enraged_spiritAI : public ScriptedAI
Summoned->setFaction(ENRAGED_SOUL_FRIENDLY);
Summoned->GetMotionMaster()->MovePoint(0,totemOspirits->GetPositionX(), totemOspirits->GetPositionY(), Summoned->GetPositionZ());
- Player* Owner = (Player*)totemOspirits->GetOwner();
- if (Owner)
+ Unit* Owner = totemOspirits->GetOwner();
+ if (Owner && Owner->GetTypeId() == TYPEID_PLAYER)
// DoCast(Owner, credit); -- not working!
- Owner->KilledMonster(credit, Summoned->GetGUID());
+ CAST_PLR(Owner)->KilledMonster(credit, Summoned->GetGUID());
DoCast(totemOspirits,SPELL_SOUL_CAPTURED);
}
}
diff --git a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
index 7f6d3d23976..236ef85f85c 100644
--- a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
+++ b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
@@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL npc_salsalabimAI : public ScriptedAI
if( done_by->GetTypeId() == TYPEID_PLAYER )
if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 20 )
{
- ((Player*)done_by)->GroupEventHappens(QUEST_10004,m_creature);
+ CAST_PLR(done_by)->GroupEventHappens(QUEST_10004,m_creature);
damage = 0;
EnterEvadeMode();
}
@@ -328,12 +328,12 @@ public:
if( who->GetTypeId() == TYPEID_PLAYER )
{
- if( ((Player*)who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(10211) == QUEST_STATUS_INCOMPLETE )
{
float Radius = 10.0;
if( m_creature->IsWithinDistInMap(who, Radius) )
{
- ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID());
+ Start(false, false, false, who->GetGUID());
}
}
}
@@ -352,7 +352,7 @@ CreatureAI* GetAI_npc_kservantAI(Creature *_Creature)
kservantAI->FillPointMovementListForCreature();
- return (CreatureAI*)kservantAI;
+ return kservantAI;
}
/*######
@@ -400,14 +400,14 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI
Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20);
if(Creepjack)
{
- ((Creature*)Creepjack)->AI()->EnterEvadeMode();
+ CAST_CRE(Creepjack)->AI()->EnterEvadeMode();
Creepjack->setFaction(1194);
Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20);
if(Malone)
{
- ((Creature*)Malone)->AI()->EnterEvadeMode();
+ CAST_CRE(Malone)->AI()->EnterEvadeMode();
Malone->setFaction(1194);
Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
@@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI
Unit* Creepjack = me->FindNearestCreature(NPC_CREEPJACK, 20);
if(Creepjack)
{
- ((Creature*)Creepjack)->AI()->EnterEvadeMode();
+ CAST_CRE(Creepjack)->AI()->EnterEvadeMode();
Creepjack->setFaction(1194);
Creepjack->GetMotionMaster()->MoveTargetedHome();
Creepjack->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -489,7 +489,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI
Unit* Malone = me->FindNearestCreature(NPC_MALONE, 20);
if(Malone)
{
- ((Creature*)Malone)->AI()->EnterEvadeMode();
+ CAST_CRE(Malone)->AI()->EnterEvadeMode();
Malone->setFaction(1194);
Malone->GetMotionMaster()->MoveTargetedHome();
Malone->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
@@ -503,7 +503,7 @@ struct TRINITY_DLL_DECL npc_dirty_larryAI : public ScriptedAI
m_creature->GetMotionMaster()->MoveTargetedHome();
Player* player = Unit::GetPlayer(PlayerGUID);
if(player)
- ((Player*)player)->GroupEventHappens(QUEST_WBI, m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_WBI, m_creature);
}
DoMeleeAttackIfReady();
}
@@ -525,8 +525,8 @@ bool GossipSelect_npc_dirty_larry(Player *player, Creature *creature, uint32 sen
{
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
- ((npc_dirty_larryAI*)creature->AI())->Event = true;
- ((npc_dirty_larryAI*)creature->AI())->PlayerGUID = player->GetGUID();
+ CAST_AI(npc_dirty_larryAI, creature->AI())->Event = true;
+ CAST_AI(npc_dirty_larryAI, creature->AI())->PlayerGUID = player->GetGUID();
player->CLOSE_GOSSIP_MENU();
}
diff --git a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
index 982c00dfcab..718a44acf58 100644
--- a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
+++ b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
@@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL npc_blood_knight_stillbladeAI : public ScriptedAI
void SpellHit(Unit *Hitter, const SpellEntry *Spellkind)
{
if((Spellkind->Id == SPELL_SHIMMERING_VESSEL) && !spellHit &&
- (Hitter->GetTypeId() == TYPEID_PLAYER) && (((Player*)Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD)))
+ (Hitter->GetTypeId() == TYPEID_PLAYER) && (CAST_PLR(Hitter)->IsActiveQuest(QUEST_REDEEMING_THE_DEAD)))
{
- ((Player*)Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD);
+ CAST_PLR(Hitter)->AreaExploredOrEventHappens(QUEST_REDEEMING_THE_DEAD);
DoCast(m_creature,SPELL_REVIVE_SELF);
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
m_creature->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
diff --git a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
index 98aea1a9b35..ed96d3a1768 100644
--- a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
@@ -81,7 +81,7 @@ bool GossipSelect_npc_astor_hadren(Player *player, Creature *_Creature, uint32 s
player->CLOSE_GOSSIP_MENU();
_Creature->setFaction(21);
if(player)
- ((npc_astor_hadrenAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_astor_hadrenAI, _Creature->AI())->AttackStart(player);
break;
}
return true;
@@ -171,7 +171,7 @@ bool QuestAccept_npc_deathstalker_erland(Player* player, Creature* creature, Que
if (quest->GetQuestId() == QUEST_ESCORTING)
{
DoScriptText(SAY_QUESTACCEPT, creature, player);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
@@ -209,7 +209,7 @@ CreatureAI* GetAI_npc_deathstalker_erlandAI(Creature *_Creature)
deathstalker_erlandAI->AddWaypoint(25, 1310.51, 1207.36, 58.51, 5000);
deathstalker_erlandAI->AddWaypoint(26, 1310.51, 1207.36, 58.51, 2000);
- return (CreatureAI*)deathstalker_erlandAI;
+ return deathstalker_erlandAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
index e600888905a..e8f234c0e0b 100644
--- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
@@ -111,7 +111,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
case 23: m_creature->SetInFront(player);
DoScriptText(SAY_END, m_creature, player);
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_PK, m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_PK, m_creature);
break;
}
}
@@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL npc_kaya_flathoofAI : public npc_escortAI
{
Player* player = Unit::GetPlayer(PlayerGUID);
if (player)
- ((Player*)player)->FailQuest(QUEST_PK);
+ CAST_PLR(player)->FailQuest(QUEST_PK);
}
}
@@ -145,7 +145,7 @@ bool QuestAccept_npc_kaya_flathoof(Player* player, Creature* creature, Quest con
{
if (quest->GetQuestId() == QUEST_PK)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
DoScriptText(SAY_START, creature);
creature->setFaction(113);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
@@ -182,7 +182,7 @@ CreatureAI* GetAI_npc_kaya_flathoofAI(Creature *_Creature)
thisAI->AddWaypoint(22, -43.77, -497.99, -46.13, 3000);// summon
thisAI->AddWaypoint(23, -41.77, -518.15, -46.13, 5000);//end
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
index 11ed71ff720..36f09218093 100644
--- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
+++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
@@ -93,8 +93,8 @@ struct TRINITY_DLL_DECL npc_bartlebyAI : public ScriptedAI
if (done_by->GetTypeId() == TYPEID_PLAYER && done_by->GetGUID() == PlayerGUID)
{
- ((Player*)done_by)->AttackStop();
- ((Player*)done_by)->AreaExploredOrEventHappens(1640);
+ CAST_PLR(done_by)->AttackStop();
+ CAST_PLR(done_by)->AreaExploredOrEventHappens(1640);
}
m_creature->CombatStop();
EnterEvadeMode();
@@ -109,8 +109,8 @@ bool QuestAccept_npc_bartleby(Player *player, Creature *_Creature, Quest const *
if(_Quest->GetQuestId() == 1640)
{
_Creature->setFaction(168);
- ((npc_bartlebyAI*)_Creature->AI())->PlayerGUID = player->GetGUID();
- ((npc_bartlebyAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_bartlebyAI, _Creature->AI())->PlayerGUID = player->GetGUID();
+ CAST_AI(npc_bartlebyAI, _Creature->AI())->AttackStart(player);
}
return true;
}
@@ -143,8 +143,8 @@ struct TRINITY_DLL_DECL npc_dashel_stonefistAI : public ScriptedAI
if (done_by->GetTypeId() == TYPEID_PLAYER)
{
- ((Player*)done_by)->AttackStop();
- ((Player*)done_by)->AreaExploredOrEventHappens(1447);
+ CAST_PLR(done_by)->AttackStop();
+ CAST_PLR(done_by)->AreaExploredOrEventHappens(1447);
}
//m_creature->CombatStop();
EnterEvadeMode();
@@ -159,7 +159,7 @@ bool QuestAccept_npc_dashel_stonefist(Player *player, Creature *_Creature, Quest
if(_Quest->GetQuestId() == 1447)
{
_Creature->setFaction(168);
- ((npc_dashel_stonefistAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_dashel_stonefistAI, _Creature->AI())->AttackStart(player);
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
index 54a4da82ebf..daeeb3e11e5 100644
--- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
+++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
@@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI
if (caster->GetTypeId() == TYPEID_PLAYER)
{
//Yenniku's Release
- if(!bReset && ((Player*)caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607)
+ if(!bReset && CAST_PLR(caster)->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE && spell->Id == 3607)
{
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN);
m_creature->CombatStop(); //stop combat
@@ -86,7 +86,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI
if(m_creature->getVictim()->GetTypeId() == TYPEID_PLAYER)
{
Unit *victim = m_creature->getVictim();
- if(((Player*)victim)->GetTeam() == HORDE)
+ if(CAST_PLR(victim)->GetTeam() == HORDE)
{
m_creature->CombatStop();
m_creature->DeleteThreatList();
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
index 5ceda79e9ef..092318fd7af 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
@@ -79,7 +79,7 @@ struct TRINITY_DLL_DECL boss_baron_rivendareAI : public ScriptedAI
{
boss_baron_rivendareAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
index 912390a883e..1906834e184 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
@@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_baroness_anastariAI : public ScriptedAI
{
boss_baroness_anastariAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
index 6689bcde8b1..d65390ab6d7 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
@@ -36,7 +36,7 @@ struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
{
boss_magistrate_barthilasAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
index aa11388e4d3..dbbbc5576d4 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
@@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_maleki_the_pallidAI : public ScriptedAI
{
boss_maleki_the_pallidAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
index 3ce0baa5454..2d2c7605404 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
@@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
{
boss_nerubenkanAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
@@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
Rand = 0;
Summoned = DoSpawnCreature(10876, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000);
if(Summoned)
- ((CreatureAI*)Summoned->AI())->AttackStart(victim);
+ (Summoned->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
index 95b2308305d..316cbaef9d3 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI
{
boss_silver_hand_bossesAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -108,7 +108,7 @@ struct TRINITY_DLL_DECL boss_silver_hand_bossesAI : public ScriptedAI
break;
}
if(pInstance->GetData(TYPE_SH_QUEST) && Killer->GetTypeId() == TYPEID_PLAYER)
- ((Player*)Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID());
+ CAST_PLR(Killer)->KilledMonster(SH_QUEST_CREDIT,m_creature->GetGUID());
}
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
index 58bec2f6898..1ecb95333c4 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
@@ -33,7 +33,7 @@ struct TRINITY_DLL_DECL boss_ramstein_the_gorgerAI : public ScriptedAI
{
boss_ramstein_the_gorgerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)m_creature->GetInstanceData();
+ pInstance = m_creature->GetInstanceData();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
index d843be2ee73..7bbc3b91e98 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
@@ -37,7 +37,7 @@ EndContentData */
bool GOHello_go_gauntlet_gate(Player *player, GameObject* _GO)
{
- ScriptedInstance* pInstance = (ScriptedInstance*)_GO->GetInstanceData();
+ ScriptedInstance* pInstance = _GO->GetInstanceData();
if (!pInstance)
return false;
@@ -131,7 +131,7 @@ struct TRINITY_DLL_DECL mob_restless_soulAI : public ScriptedAI
{
if (caster->GetTypeId() == TYPEID_PLAYER)
{
- if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && ((Player*)caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE)
+ if (!Tagged && spell->Id == SPELL_EGAN_BLASTER && CAST_PLR(caster)->GetQuestStatus(QUEST_RESTLESS_SOUL) == QUEST_STATUS_INCOMPLETE)
{
Tagged = true;
Tagger = caster->GetGUID();
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
index 4faa0f792bf..7f4e6f7fdcd 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
@@ -67,7 +67,7 @@ enum Spells
struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
{
boss_brutallusAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
index 9d11feefb1f..92099f70ee6 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
@@ -94,7 +94,7 @@ enum Creatures
struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
boss_sacrolashAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -121,7 +121,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
if (Temp)
if (Temp->isDead())
{
- ((Creature*)Temp)->Respawn();
+ CAST_CRE(Temp)->Respawn();
}else
{
if(Temp->getVictim())
@@ -156,7 +156,7 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_ALYTHESS));
if (Temp && Temp->isAlive() && !(Temp->getVictim()))
- ((Creature*)Temp)->AI()->AttackStart(who);
+ CAST_CRE(Temp)->AI()->AttackStart(who);
}
if(pInstance)
@@ -354,7 +354,7 @@ CreatureAI* GetAI_boss_sacrolash(Creature *_Creature)
struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
{
boss_alythessAI(Creature *c) : Scripted_NoMovementAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
IntroStepCounter = 10;
}
@@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
if (Temp)
if (Temp->isDead())
{
- ((Creature*)Temp)->Respawn();
+ CAST_CRE(Temp)->Respawn();
}else
{
if(Temp->getVictim())
@@ -421,7 +421,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
{
Unit* Temp = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH));
if (Temp && Temp->isAlive() && !(Temp->getVictim()))
- ((Creature*)Temp)->AI()->AttackStart(who);
+ CAST_CRE(Temp)->AI()->AttackStart(who);
}
if(pInstance)
@@ -533,7 +533,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
uint32 IntroStep(uint32 step)
{
- Creature* Sacrolash = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SACROLASH));
+ Creature* Sacrolash = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH));
switch (step)
{
case 0: return 0;
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
index ec7778d7a0d..f15a7742a8c 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
@@ -127,16 +127,16 @@ static EventFelmyst MaxTimer[]=
struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{
boss_felmystAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
// wait for core patch be accepted
- /*SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ENCAPSULATE_EFFECT);
+ /*SpellEntry *TempSpell = GET_SPELL(SPELL_ENCAPSULATE_EFFECT);
if(TempSpell->SpellIconID == 2294)
TempSpell->SpellIconID = 2295;
- TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_VAPOR_TRIGGER);
+ TempSpell = GET_SPELL(SPELL_VAPOR_TRIGGER);
if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0)
TempSpell->Attributes |= SPELL_ATTR_PASSIVE;
- TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_FOG_CHARM2);
+ TempSpell = GET_SPELL(SPELL_FOG_CHARM2);
if((TempSpell->Attributes & SPELL_ATTR_PASSIVE) == 0)
TempSpell->Attributes |= SPELL_ATTR_PASSIVE;*/
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
index 92e1991e50a..600f4906ca5 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
@@ -102,7 +102,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
{
boss_kalecgosAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
SathGUID = 0;
DoorGUID = 0;
}
@@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
}
Unit *Sath = Unit::GetUnit(*m_creature,SathGUID);
- if(Sath) ((Creature*)Sath)->AI()->EnterEvadeMode();
+ if(Sath) CAST_CRE(Sath)->AI()->EnterEvadeMode();
GameObject *Door = GameObject::GetGameObject(*m_creature, DoorGUID);
if(Door) Door->SetLootState(GO_JUST_DEACTIVATED);
@@ -250,7 +250,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
{
boss_sathrovarrAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
KalecGUID = 0;
KalecgosGUID = 0;
}
@@ -318,8 +318,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
TeleportAllPlayersBack();
if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID))
{
- ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1;
- ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = false;
+ CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1;
+ CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = false;
}
EnterEvadeMode();
return;
@@ -338,8 +338,8 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
TeleportAllPlayersBack();
if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID))
{
- ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->TalkTimer = 1;
- ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isFriendly = true;
+ CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->TalkTimer = 1;
+ CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isFriendly = true;
}
if(pInstance)
@@ -371,7 +371,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
if(Kalecgos)
{
Kalecgos->CastSpell(Kalecgos, SPELL_ENRAGE, true);
- ((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isEnraged = true;
+ CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isEnraged = true;
}
DoCast(m_creature, SPELL_ENRAGE, true);
isEnraged = true;
@@ -381,7 +381,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
{
if(Unit *Kalecgos = Unit::GetUnit(*m_creature, KalecgosGUID))
{
- if(((boss_kalecgosAI*)((Creature*)Kalecgos)->AI())->isBanished)
+ if(CAST_AI(boss_kalecgosAI, CAST_CRE(Kalecgos)->AI())->isBanished)
{
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
return;
@@ -458,7 +458,7 @@ struct TRINITY_DLL_DECL boss_kalecAI : public ScriptedAI
bool isEnraged; // if demon is enraged
boss_kalecAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void Reset()
@@ -570,7 +570,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff)
if(Sath)
{
Sath->CastSpell(Sath, SPELL_ENRAGE, true);
- ((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isEnraged = true;
+ CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isEnraged = true;
}
DoCast(m_creature, SPELL_ENRAGE, true);
isEnraged = true;
@@ -580,7 +580,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff)
{
if(Unit *Sath = Unit::GetUnit(*m_creature, SathGUID))
{
- if(((boss_sathrovarrAI*)((Creature*)Sath)->AI())->isBanished)
+ if(CAST_AI(boss_sathrovarrAI, CAST_CRE(Sath)->AI())->isBanished)
{
Sath->DealDamage(Sath, Sath->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
return;
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
index 487aeee19b9..cb0ee4b7f78 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
@@ -269,12 +269,12 @@ public:
bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go)
{
if(go->GetUInt32Value(GAMEOBJECT_FACTION) == 35){
- ScriptedInstance* pInstance = ((ScriptedInstance*)go->GetInstanceData());
+ ScriptedInstance* pInstance = (go->GetInstanceData());
float x,y,z, dx,dy,dz;
go->SummonCreature(CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT, plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000);
plr->CastSpell(plr, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, true);
go->SetUInt32Value(GAMEOBJECT_FACTION, 0);
- Unit* Kalec = ((Creature*)Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ)));
+ Unit* Kalec = CAST_CRE(Unit::GetUnit(*plr, pInstance->GetData64(DATA_KALECGOS_KJ)));
//Kalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES);
go->GetPosition(x,y,z);
for(uint8 i = 0; i < 4; ++i){
@@ -296,7 +296,7 @@ bool GOHello_go_orb_of_the_blue_flight(Player *plr, GameObject* go)
struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI
{
boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
GameObject* Orb[4];
@@ -409,7 +409,7 @@ CreatureAI* GetAI_boss_kalecgos_kj(Creature *_Creature)
struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
{
boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -460,7 +460,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
IsWaiting = false;
OrbActivated = false;
- Kalec = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ)));
+ Kalec = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ)));
ChangeTimers(false, 0);
}
@@ -516,9 +516,9 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
// Reset the controller
if(pInstance){
- Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
+ Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
if(Control)
- ((Scripted_NoMovementAI*)Control->AI())->Reset();
+ CAST_AI(Scripted_NoMovementAI, Control->AI())->Reset();
}
}
@@ -647,8 +647,8 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
break;
case TIMER_ORBS_EMPOWER: //Phase 3
if(Phase == PHASE_SACRIFICE){
- if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(true);
- }else if(Kalec)((boss_kalecgos_kjAI*)Kalec->AI())->EmpowerOrb(false);
+ if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(true);
+ }else if(Kalec)CAST_AI(boss_kalecgos_kjAI, Kalec->AI())->EmpowerOrb(false);
Timer[TIMER_ORBS_EMPOWER]= (Phase == PHASE_SACRIFICE) ? 45000 : 35000;
OrbActivated = true;
TimerIsDeactiveted[TIMER_ORBS_EMPOWER] = true;
@@ -704,7 +704,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
if(Phase <= PHASE_ARMAGEDDON){
if(Phase == PHASE_ARMAGEDDON && ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)){
Phase = PHASE_SACRIFICE;
- Creature* Anveena = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ANVEENA)));
+ Creature* Anveena = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_ANVEENA)));
if (Anveena)Anveena->CastSpell(m_creature, SPELL_SACRIFICE_OF_ANVEENA, false);
OrbActivated = false;
ChangeTimers(true, 10000);// He shouldn't cast spells for ~10 seconds after Anveena's sacrifice. This will be done within Anveena's script
@@ -724,7 +724,7 @@ CreatureAI* GetAI_boss_kiljaeden(Creature *_Creature)
struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementAI
{
mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -747,7 +747,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA
void Reset(){
Phase = PHASE_DECEIVERS;
- if(KalecKJ)((boss_kalecgos_kjAI*)KalecKJ->AI())->ResetOrbs();
+ if(KalecKJ)CAST_AI(boss_kalecgos_kjAI, KalecKJ->AI())->ResetOrbs();
DeceiverDeathCount = 0;
SummonedDeceivers = false;
KiljaedenDeath = false;
@@ -767,7 +767,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA
break;
case CREATURE_KILJAEDEN:
summoned->CastSpell(summoned, SPELL_REBIRTH, false);
- ((boss_kiljaedenAI*)summoned->AI())->Phase=PHASE_NORMAL;
+ CAST_AI(boss_kiljaedenAI, summoned->AI())->Phase=PHASE_NORMAL;
summoned->AddThreat(m_creature->getVictim(), 1.0f);
break;
}
@@ -813,7 +813,7 @@ CreatureAI* GetAI_mob_kiljaeden_controller(Creature *_Creature)
struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
{
mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -835,7 +835,7 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
void EnterCombat(Unit* who){
if(pInstance){
pInstance->SetData(DATA_KILJAEDEN_EVENT, IN_PROGRESS);
- Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
+ Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
if(Control)
Control->AddThreat(who, 1.0f);
}
@@ -846,9 +846,9 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
if(!pInstance)
return;
- Creature* Control = ((Creature*)Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
+ Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
if(Control)
- ((mob_kiljaeden_controllerAI*)Control->AI())->DeceiverDeathCount++;
+ CAST_AI(mob_kiljaeden_controllerAI, Control->AI())->DeceiverDeathCount++;
}
void UpdateAI(const uint32 diff){
@@ -1035,7 +1035,7 @@ CreatureAI* GetAI_mob_armageddon(Creature *_Creature)
struct TRINITY_DLL_DECL mob_shield_orbAI : public ScriptedAI
{
mob_shield_orbAI(Creature* c) : ScriptedAI(c) {
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
bool PointReached;
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp
index b026e2d6f7c..cd53ca034f4 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_muru.cpp
@@ -116,7 +116,7 @@ uint32 EnrageTimer = 600000;
struct TRINITY_DLL_DECL boss_entropiusAI : public ScriptedAI
{
boss_entropiusAI(Creature *c) : ScriptedAI(c), Summons(m_creature){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Combat = false;
}
@@ -202,7 +202,7 @@ CreatureAI* GetAI_boss_entropius(Creature *_Creature)
struct TRINITY_DLL_DECL boss_muruAI : public Scripted_NoMovementAI
{
boss_muruAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -343,7 +343,7 @@ CreatureAI* GetAI_boss_muru(Creature *_Creature)
struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI
{
npc_muru_portalAI(Creature *c) : Scripted_NoMovementAI(c), Summons(m_creature){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -362,8 +362,7 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI
}
void JustSummoned(Creature* summoned){
- Player* Target;
- Target = (Player*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID)));
+ Player* Target = Unit::GetPlayer(pInstance->GetData64(DATA_PLAYER_GUID));
if(Target)summoned->AI()->AttackStart(Target);
Summons.Summon(summoned);
}
@@ -407,7 +406,7 @@ CreatureAI* GetAI_npc_muru_portal(Creature *_Creature)
struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI
{
npc_dark_fiendAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -461,7 +460,7 @@ CreatureAI* GetAI_npc_dark_fiend(Creature *_Creature)
struct TRINITY_DLL_DECL npc_void_sentinelAI : public ScriptedAI
{
npc_void_sentinelAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -512,7 +511,7 @@ CreatureAI* GetAI_npc_void_sentinel(Creature *_Creature)
struct TRINITY_DLL_DECL npc_blackholeAI : public ScriptedAI
{
npc_blackholeAI(Creature *c) : ScriptedAI(c){
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
index fbc2fe321e4..cefca8902d3 100644
--- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
+++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
@@ -66,15 +66,15 @@ struct TRINITY_DLL_DECL mob_aquementasAI : public ScriptedAI
void SendItem(Unit* receiver)
{
- if (((Player*)receiver)->HasItemCount(11169,1,false) &&
- ((Player*)receiver)->HasItemCount(11172,11,false) &&
- ((Player*)receiver)->HasItemCount(11173,1,false) &&
- !((Player*)receiver)->HasItemCount(11522,1,true))
+ if (CAST_PLR(receiver)->HasItemCount(11169,1,false) &&
+ CAST_PLR(receiver)->HasItemCount(11172,11,false) &&
+ CAST_PLR(receiver)->HasItemCount(11173,1,false) &&
+ !CAST_PLR(receiver)->HasItemCount(11522,1,true))
{
ItemPosCountVec dest;
- uint8 msg = ((Player*)receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false);
+ uint8 msg = CAST_PLR(receiver)->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, 11522, 1, false);
if( msg == EQUIP_ERR_OK )
- ((Player*)receiver)->StoreNewItem( dest, 11522, 1, true);
+ CAST_PLR(receiver)->StoreNewItem( dest, 11522, 1, true);
}
}
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI
DoScriptText(WHISPER_CUSTODIAN_14, m_creature, pTemp);
DoCast(pTemp,34883);
//below here is temporary workaround, to be removed when spell works properly
- ((Player*)pTemp)->AreaExploredOrEventHappens(10277);
+ CAST_PLR(pTemp)->AreaExploredOrEventHappens(10277);
break;
}
}
@@ -191,12 +191,12 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI
if( who->GetTypeId() == TYPEID_PLAYER )
{
- if( ((Player*)who)->HasAura(34877) && ((Player*)who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->HasAura(34877) && CAST_PLR(who)->GetQuestStatus(10277) == QUEST_STATUS_INCOMPLETE )
{
float Radius = 10.0;
if( m_creature->IsWithinDistInMap(who, Radius) )
{
- ((npc_escortAI*)(m_creature->AI()))->Start(false, false, false, who->GetGUID());
+ Start(false, false, false, who->GetGUID());
}
}
}
@@ -217,7 +217,7 @@ CreatureAI* GetAI_npc_custodian_of_time(Creature* pCreature)
custodian_of_timeAI->FillPointMovementListForCreature();
- return (CreatureAI*)custodian_of_timeAI;
+ return custodian_of_timeAI;
}
/*######
@@ -413,7 +413,7 @@ struct TRINITY_DLL_DECL npc_OOX17AI : public npc_escortAI
if (PlayerGUID)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(Q_OOX17);
+ CAST_PLR(player)->FailQuest(Q_OOX17);
}
}
@@ -435,7 +435,7 @@ bool QuestAccept_npc_OOX17(Player* player, Creature* creature, Quest const* ques
creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
DoScriptText(SAY_CHICKEN_ACC, creature);
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
}
return true;
@@ -533,7 +533,7 @@ CreatureAI* GetAI_npc_OOX17(Creature *_Creature)
OOX17AI->AddWaypoint(85, -6944.81, -4816.58, 1.60);
OOX17AI->AddWaypoint(86, -6942.06, -4839.40, 0.66,5000);
- return (CreatureAI*)OOX17AI;
+ return OOX17AI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp
index 846b3a008f6..fb376795119 100644
--- a/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp
+++ b/src/bindings/scripts/scripts/zone/teldrassil/teldrassil.cpp
@@ -175,7 +175,7 @@ CreatureAI* GetAI_npc_mist(Creature* pCreature)
bool QuestAccept_npc_mist(Player* pPlayer, Creature* pCreature, Quest const* pQuest)
{
if (pQuest->GetQuestId() == QUEST_MIST)
- ((npc_mistAI*)(pCreature->AI()))->DoStart(pPlayer->GetGUID());
+ CAST_AI(npc_mistAI, (pCreature->AI()))->DoStart(pPlayer->GetGUID());
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
index 04963bf02c2..0392437eeb5 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
@@ -63,7 +63,7 @@ struct TRINITY_DLL_DECL npc_millhouse_manastormAI : public ScriptedAI
{
npc_millhouse_manastormAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
@@ -251,7 +251,7 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI
{
npc_warden_mellicharAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
index 9a9e0aa0966..37e12c60b2e 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
@@ -57,7 +57,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI
{
boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
Intro = false;
}
@@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyriss_illusionAI : public ScriptedAI
{
boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
index 4dd70cb7d20..51ebe1f70c9 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI
void EnterCombat(Unit *who) {}
- void MoveInLineOfSight(Unit*) {}
+ void MoveInLineOfSight(Unit* who) {}
void UpdateAI(const uint32 diff)
{
@@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL mob_treantAI : public ScriptedAI
{
if(WarpGuid && check_Timer < diff)
{
- if(Unit *Warp = (Unit*)Unit::GetUnit(*m_creature, WarpGuid))
+ if(Unit *Warp = Unit::GetUnit(*m_creature, WarpGuid))
{
if(m_creature->IsWithinMeleeRange(Warp,2.5f))
{
@@ -160,7 +160,7 @@ struct TRINITY_DLL_DECL boss_warp_splinterAI : public ScriptedAI
float O = - m_creature->GetAngle(X,Y);
if(Creature *pTreant = m_creature->SummonCreature(CREATURE_TREANT,treant_pos[i][0],treant_pos[i][1],treant_pos[i][2],O,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,25000))
- ((mob_treantAI*)pTreant->AI())->WarpGuid = m_creature->GetGUID();
+ CAST_AI(mob_treantAI, pTreant->AI())->WarpGuid = m_creature->GetGUID();
}
switch(rand()%2)
{
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
index 132747a31bd..6a927191322 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
@@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
{
boss_alarAI(Creature *c) : ScriptedAI(c)
{
- pInstance =((ScriptedInstance*)c->GetInstanceData());
+ pInstance =(c->GetInstanceData());
DefaultMoveSpeedRate = m_creature->GetSpeedRate(MOVE_RUN);
}
@@ -432,7 +432,7 @@ struct TRINITY_DLL_DECL mob_ember_of_alarAI : public ScriptedAI
{
mob_ember_of_alarAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (ScriptedInstance*)c->GetInstanceData();
+ pInstance = c->GetInstanceData();
m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
index 6af14eceeed..f886ecae224 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
@@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI
{
boss_high_astromancer_solarianAI(Creature *c) : ScriptedAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
defaultarmor = m_creature->GetArmor();
defaultsize = m_creature->GetFloatValue(OBJECT_FIELD_SCALE_X);
@@ -393,7 +393,7 @@ struct TRINITY_DLL_DECL mob_solarium_priestAI : public ScriptedAI
{
mob_solarium_priestAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
index 7557e03f8e5..28bd1590f03 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL advisorbase_ai : public ScriptedAI
advisorbase_ai(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void MoveInLineOfSight(Unit *who)
@@ -274,7 +274,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
{
boss_kaelthasAI(Creature *c) : ScriptedAI(c), summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
AdvisorGuid[0] = 0;
AdvisorGuid[1] = 0;
AdvisorGuid[2] = 0;
@@ -311,10 +311,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
void DeleteLegs()
{
- InstanceMap::PlayerList const &playerliste = ((InstanceMap*)m_creature->GetMap())->GetPlayers();
- InstanceMap::PlayerList::const_iterator it;
-
- Map::PlayerList const &PlayerList = ((InstanceMap*)m_creature->GetMap())->GetPlayers();
+ Map::PlayerList const &PlayerList = m_creature->GetMap()->GetPlayers();
for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
Player* i_pl = i->getSource();
@@ -734,7 +731,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
if (!Advisor)
error_log("TSCR: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i);
else if(Target)
- ((advisorbase_ai*)Advisor->AI())->Revive(Target);
+ CAST_AI(advisorbase_ai, Advisor->AI())->Revive(Target);
}
PhaseSubphase = 1;
@@ -1400,7 +1397,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
{
mob_phoenix_tkAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
index d5648e3a8ff..aa96435bbb1 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
@@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_void_reaverAI : public ScriptedAI
{
boss_void_reaverAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
index 34e131ba013..86e36072546 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI
{
boss_gatewatcher_iron_handAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
index cd18240901d..e14aba074cf 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI
{
boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -166,7 +166,7 @@ struct TRINITY_DLL_DECL mob_ragin_flamesAI : public ScriptedAI
{
mob_ragin_flamesAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic();
+ pInstance = (c->GetInstanceData()); HeroicMode = m_creature->GetMap()->IsHeroic();
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
index 6d128ad654e..2c5ffe06bfc 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
@@ -39,7 +39,7 @@ struct TRINITY_DLL_DECL boss_kriAI : public ScriptedAI
{
boss_kriAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -124,7 +124,7 @@ struct TRINITY_DLL_DECL boss_vemAI : public ScriptedAI
{
boss_vemAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -205,7 +205,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI
{
boss_yaujAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -240,7 +240,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
Creature* Summoned = m_creature->SummonCreature(15621,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,90000);
if(Summoned && target)
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ (Summoned->AI())->AttackStart(target);
}
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
index e3c10237635..584e87a3f97 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
@@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
{
eye_of_cthunAI(Creature *c) : Scripted_NoMovementAI(c)
{
- pInst = (ScriptedInstance*)c->GetInstanceData();
+ pInst = c->GetInstanceData();
if (!pInst)
error_log("TSCR: No Instance eye_of_cthunAI");
}
@@ -190,7 +190,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
void SpawnEyeTentacle(float x, float y)
{
Creature* Spawned;
- Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
+ Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
if (Spawned)
{
Unit* target;
@@ -244,7 +244,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
Creature* Spawned = NULL;
//Spawn claw tentacle on the random target
- Spawned = (Creature*)m_creature->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
+ Spawned = me->SummonCreature(MOB_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
if (Spawned)
Spawned->AI()->AttackStart(target);
@@ -435,7 +435,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
{
cthunAI(Creature *c) : Scripted_NoMovementAI(c)
{
- pInst = (ScriptedInstance*)c->GetInstanceData();
+ pInst = c->GetInstanceData();
if (!pInst)
error_log("TSCR: No Instance eye_of_cthunAI");
}
@@ -506,7 +506,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
void SpawnEyeTentacle(float x, float y)
{
Creature* Spawned;
- Spawned = (Creature*)m_creature->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
+ Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
if (Spawned)
{
Unit* target;
@@ -629,20 +629,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
Creature* Spawned;
//Spawn flesh tentacle
- Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (!Spawned)
FleshTentaclesKilled++;
else
- ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
+ CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
//Spawn flesh tentacle
- Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (!Spawned)
FleshTentaclesKilled++;
else
- ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
+ CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
PhaseTimer = 0;
}else PhaseTimer -= diff;
@@ -775,7 +775,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
Creature* Spawned = NULL;
//Spawn claw tentacle on the random target
- Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
+ Spawned = me->SummonCreature(MOB_GIANT_CLAW_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
if (Spawned)
Spawned->AI()->AttackStart(target);
@@ -796,7 +796,7 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
Creature* Spawned = NULL;
//Spawn claw tentacle on the random target
- Spawned = (Creature*)m_creature->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
+ Spawned = me->SummonCreature(MOB_GIANT_EYE_TENTACLE,target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
if (Spawned)
Spawned->AI()->AttackStart(target);
@@ -844,20 +844,20 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
Creature* Spawned;
//Spawn flesh tentacle
- Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (!Spawned)
FleshTentaclesKilled++;
else
- ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
+ CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
//Spawn flesh tentacle
- Spawned = (Creature*)m_creature->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
+ Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (!Spawned)
FleshTentaclesKilled++;
else
- ((flesh_tentacleAI*)(Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
+ CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
PhaseTimer = 0;
}else PhaseTimer -= diff;
@@ -925,7 +925,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public Scripted_NoMovementAI
uint32 KillSelfTimer;
uint64 Portal;
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
Unit* p = Unit::GetUnit(*m_creature, Portal);
if (p)
@@ -988,7 +988,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public Scripted_NoMovementAI
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
Unit* p = Unit::GetUnit(*m_creature, Portal);
if (p)
@@ -1083,7 +1083,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public Scripted_NoMovementAI
uint32 EvadeTimer;
uint64 Portal;
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
Unit* p = Unit::GetUnit(*m_creature, Portal);
if (p)
@@ -1184,7 +1184,7 @@ struct TRINITY_DLL_DECL giant_eye_tentacleAI : public Scripted_NoMovementAI
uint32 BeamTimer;
uint64 Portal;
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
Unit* p = Unit::GetUnit(*m_creature, Portal);
if (p)
@@ -1258,7 +1258,7 @@ void flesh_tentacleAI::JustDied(Unit* killer)
Creature* Cthun = Unit::GetCreature(*m_creature, Parent);
if (Cthun)
- ((cthunAI*)(Cthun->AI()))->FleshTentcleKilled();
+ CAST_AI(cthunAI, (Cthun->AI()))->FleshTentcleKilled();
else error_log("TSCR: flesh_tentacle: No Cthun");
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
index 1f3b317bf9d..ac50457c5fc 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
@@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI
Rand = 0;
Spawn = DoSpawnCreature(15630, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
if(Spawn)
- ((CreatureAI*)Spawn->AI())->AttackStart(victim);
+ (Spawn->AI())->AttackStart(victim);
}
void EnterCombat(Unit *who)
@@ -139,46 +139,46 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI
DoTeleportPlayer(target, -8106.0142,1289.2900,-74.419533,5.112);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
break;
case 1:
DoTeleportPlayer(target, -7990.135354,1155.1907,-78.849319,2.608);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
break;
case 2:
DoTeleportPlayer(target,-8159.7753,1127.9064,-76.868660,0.675);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(Hatchling)
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ (Hatchling->AI())->AttackStart(target);
break;
}
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
index a8168615a5e..1fc47f68295 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
{
boss_skeramAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
IsImage = false;
}
@@ -243,7 +243,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
Unit *targetpl = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (targetpl->GetTypeId() == TYPEID_PLAYER)
{
- Group *grp = ((Player *)targetpl)->GetGroup();
+ Group *grp = CAST_PLR(targetpl)->GetGroup();
if (grp)
{
for (int ici = 0; ici < TARGETICONCOUNT; ici++)
@@ -283,7 +283,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
Image1->SetHealth(m_creature->GetHealth() / 5);
if (target)
Image1->AI()->AttackStart(target);
- ((boss_skeramAI*)Image1->AI())->IsImage = true;
+ CAST_AI(boss_skeramAI, Image1->AI())->IsImage = true;
}
Image2 = m_creature->SummonCreature(15263,i2->x, i2->y, i2->z, i2->r, TEMPSUMMON_CORPSE_DESPAWN, 30000);
@@ -293,7 +293,7 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
Image2->SetHealth(m_creature->GetHealth() / 5);
if (target)
Image2->AI()->AttackStart(target);
- ((boss_skeramAI*)Image2->AI())->IsImage = true;
+ CAST_AI(boss_skeramAI, Image2->AI())->IsImage = true;
}
Invisible = true;
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
index d2fff0e569f..1c741bdd859 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
@@ -75,7 +75,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
boss_twinemperorsAI(Creature *c): ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void TwinReset()
@@ -96,11 +96,11 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
{
if(pInstance)
{
- return (Creature *)Unit::GetUnit((*m_creature), pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
+ return Unit::GetCreature(*m_creature, pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
}
else
{
- return (Creature *)0;
+ return NULL;
}
}
@@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
pOtherBoss->SetHealth(0);
pOtherBoss->setDeathState(JUST_DIED);
pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
- ((boss_twinemperorsAI *)pOtherBoss->AI())->DontYellWhenDead = true;
+ CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true;
}
if (!DontYellWhenDead) // I hope AI is not threaded
DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_DEATH : SOUND_VN_DEATH);
@@ -148,7 +148,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
{
// TODO: we should activate the other boss location so he can start attackning even if nobody
// is near I dont know how to do that
- ScriptedAI *otherAI = (ScriptedAI*)pOtherBoss->AI();
+ ScriptedAI *otherAI = CAST_AI(ScriptedAI, pOtherBoss->AI());
if (!pOtherBoss->isInCombat())
{
DoPlaySoundToSet(m_creature, IAmVeklor() ? SOUND_VL_AGGRO : SOUND_VN_AGGRO);
@@ -197,7 +197,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
if (Heal_Timer < diff)
{
Unit *pOtherBoss = GetOtherBoss();
- if (pOtherBoss && (pOtherBoss->GetDistance((const Creature *)m_creature) <= 60))
+ if (pOtherBoss && (pOtherBoss->GetDistance(m_creature) <= 60))
{
DoCast(pOtherBoss, SPELL_HEAL_BROTHER);
Heal_Timer = 1000;
@@ -230,7 +230,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
thismap->CreatureRelocation(m_creature, other_x, other_y, other_z, other_o);
SetAfterTeleport();
- ((boss_twinemperorsAI*) pOtherBoss->AI())->SetAfterTeleport();
+ CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->SetAfterTeleport();
}
}
@@ -316,9 +316,9 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
{
public:
AnyBugCheck(WorldObject const* obj, float range) : i_obj(obj), i_range(range) {}
- bool operator()(Unit* u)
+ bool operator()(Creature* u)
{
- Creature *c = (Creature *)u;
+ Creature *c = u;
if (!i_obj->IsWithinDistInMap(c, i_range))
return false;
return (c->GetEntry() == 15316 || c->GetEntry() == 15317);
@@ -347,7 +347,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
for(std::list<Creature*>::iterator iter = unitList.begin(); iter != unitList.end(); ++iter)
{
- Creature *c = (Creature *)(*iter);
+ Creature *c = *iter;
if (c && c->isDead())
{
c->Respawn();
@@ -434,8 +434,8 @@ struct TRINITY_DLL_DECL boss_veknilashAI : public boss_twinemperorsAI
void CastSpellOnBug(Creature *target)
{
target->setFaction(14);
- ((CreatureAI*)target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget());
- SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_MUTATE_BUG);
+ (target->AI())->AttackStart(m_creature->getThreatManager().getHostilTarget());
+ SpellEntry *spell = GET_SPELL(SPELL_MUTATE_BUG);
uint8 eff_mask=0;
for (int i=0; i<3; i++)
{
@@ -520,7 +520,7 @@ struct TRINITY_DLL_DECL boss_veklorAI : public boss_twinemperorsAI
void CastSpellOnBug(Creature *target)
{
target->setFaction(14);
- SpellEntry *spell = (SpellEntry *)GetSpellStore()->LookupEntry(SPELL_EXPLODEBUG);
+ SpellEntry *spell = GET_SPELL(SPELL_EXPLODEBUG);
uint8 eff_mask=0;
for (int i=0; i<3; i++)
{
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
index 30106f62180..b45097d7f97 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
@@ -133,7 +133,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI
void GiveBuddyMyList(Creature *c)
{
- aqsentinelAI *cai = (aqsentinelAI *)(c->AI());
+ aqsentinelAI *cai = CAST_AI(aqsentinelAI, (c)->AI());
for (int i=0; i<3; i++)
if (nearby[i] && nearby[i]!=c)
cai->AddBuddyToList(nearby[i]);
@@ -213,8 +213,8 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI
if (!nearby[bli])
break;
AddSentinelsNear(nearby[bli]);
- ((aqsentinelAI *)nearby[bli]->AI())->gatherOthersWhenAggro = false;
- ((aqsentinelAI *)nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities));
+ CAST_AI(aqsentinelAI, nearby[bli]->AI())->gatherOthersWhenAggro = false;
+ CAST_AI(aqsentinelAI, nearby[bli]->AI())->selectAbility(pickAbilityRandom(chosenAbilities));
}
/*if (bli < 3)
DoYell("I dont have enough buddies.", LANG_NEUTRAL, 0);*/
@@ -254,7 +254,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI
continue;
eff_mask=1<<i;
}
- SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry *)spell, id, eff_mask);
+ SentinelAbilityAura *a = new SentinelAbilityAura(this, (SpellEntry*)spell, id, eff_mask);
m_creature->AddAura(a);
if (id == SPELL_KNOCK_BUFF)
@@ -273,7 +273,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI
DoZoneInCombat();
}
- void JustDied(Unit*)
+ void JustDied(Unit* who)
{
for (int ni=0; ni<3; ni++)
{
@@ -286,7 +286,7 @@ struct TRINITY_DLL_DECL aqsentinelAI : public ScriptedAI
if (h > sent->GetMaxHealth())
h = sent->GetMaxHealth();
sent->SetHealth(h);
- ((aqsentinelAI *)sent->AI())->GainSentinelAbility(ability);
+ CAST_AI(aqsentinelAI, sent->AI())->GainSentinelAbility(ability);
}
}
diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
index 2e95c08b5c1..6170ba35b90 100644
--- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
@@ -81,7 +81,7 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI
if( done_by->GetTypeId() == TYPEID_PLAYER )
if( (m_creature->GetHealth()-damage)*100 / m_creature->GetMaxHealth() < 30 )
{
- if( Group* pGroup = ((Player*)done_by)->GetGroup() )
+ if( Group* pGroup = CAST_PLR(done_by)->GetGroup() )
{
for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next())
{
@@ -96,10 +96,10 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI
}
}
} else
- if( ((Player*)done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
- ((Player*)done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 )
+ if( CAST_PLR(done_by)->GetQuestStatus(QUEST_DONTKILLTHEFATONE) == QUEST_STATUS_INCOMPLETE &&
+ CAST_PLR(done_by)->GetReqKillOrCastCurrentCount(QUEST_DONTKILLTHEFATONE, 18260) == 10 )
{
- ((Player*)done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE);
+ CAST_PLR(done_by)->AreaExploredOrEventHappens(QUEST_DONTKILLTHEFATONE);
CanDoQuest = true;
}
}
@@ -215,12 +215,12 @@ struct TRINITY_DLL_DECL mob_netherweb_victimAI : public ScriptedAI
{
if( Killer->GetTypeId() == TYPEID_PLAYER )
{
- if( ((Player*)Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(Killer)->GetQuestStatus(10873) == QUEST_STATUS_INCOMPLETE )
{
if( rand()%100 < 25 )
{
DoSpawnCreature(QUEST_TARGET,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000);
- ((Player*)Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID());
+ CAST_PLR(Killer)->KilledMonster(QUEST_TARGET, m_creature->GetGUID());
}else
DoSpawnCreature(netherwebVictims[rand()%6],0,0,0,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,60000);
@@ -322,7 +322,7 @@ bool GossipSelect_npc_floon(Player *player, Creature *_Creature, uint32 sender,
player->CLOSE_GOSSIP_MENU();
_Creature->setFaction(FACTION_HOSTILE_FL);
DoScriptText(SAY_FLOON_ATTACK, _Creature, player);
- ((npc_floonAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_floonAI, _Creature->AI())->AttackStart(player);
}
return true;
}
@@ -368,10 +368,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI
case 29:DoScriptText(SAY_PROGRESS_4, m_creature, player);
if (player)
{
- if(((Player*)player)->GetTeam() == ALLIANCE)
- ((Player*)player)->GroupEventHappens(QUEST_EFTW_A, m_creature);
- else if(((Player*)player)->GetTeam() == HORDE)
- ((Player*)player)->GroupEventHappens(QUEST_EFTW_H, m_creature);
+ if(CAST_PLR(player)->GetTeam() == ALLIANCE)
+ CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_A, m_creature);
+ else if(CAST_PLR(player)->GetTeam() == HORDE)
+ CAST_PLR(player)->GroupEventHappens(QUEST_EFTW_H, m_creature);
} Completed = true;
m_creature->SetInFront(player); break;
case 30: m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break;
@@ -395,10 +395,10 @@ struct TRINITY_DLL_DECL npc_isla_starmaneAI : public npc_escortAI
Player* player = Unit::GetPlayer(PlayerGUID);
if (player && !Completed)
{
- if(((Player*)player)->GetTeam() == ALLIANCE)
- ((Player*)player)->FailQuest(QUEST_EFTW_A);
- else if(((Player*)player)->GetTeam() == HORDE)
- ((Player*)player)->FailQuest(QUEST_EFTW_H);
+ if(CAST_PLR(player)->GetTeam() == ALLIANCE)
+ CAST_PLR(player)->FailQuest(QUEST_EFTW_A);
+ else if(CAST_PLR(player)->GetTeam() == HORDE)
+ CAST_PLR(player)->FailQuest(QUEST_EFTW_H);
}
}
}
@@ -413,7 +413,7 @@ bool QuestAccept_npc_isla_starmane(Player* player, Creature* creature, Quest con
{
if (quest->GetQuestId() == QUEST_EFTW_H || quest->GetQuestId() == QUEST_EFTW_A)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
creature->setFaction(113);
}
return true;
@@ -459,7 +459,7 @@ CreatureAI* GetAI_npc_isla_starmaneAI(Creature *_Creature)
thisAI->AddWaypoint(33, -2396.81, 3517.17, -3.55);
thisAI->AddWaypoint(34, -2439.23, 3523.00, -1.05);
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*######
diff --git a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp
index b4d89470229..7406d259db1 100644
--- a/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp
+++ b/src/bindings/scripts/scripts/zone/thousand_needles/thousand_needles.cpp
@@ -64,7 +64,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {}
case 70:
DoScriptText(SAY_FINISH, m_creature, player);
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_HOMEWARD_BOUND,m_creature);
break;
}
@@ -87,7 +87,7 @@ npc_swiftmountainAI(Creature *c) : npc_escortAI(c) {}
if (PlayerGUID)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_HOMEWARD_BOUND);
+ CAST_PLR(player)->FailQuest(QUEST_HOMEWARD_BOUND);
}
}
@@ -101,7 +101,7 @@ bool QuestAccept_npc_swiftmountain(Player* player, Creature* creature, Quest con
{
if (quest->GetQuestId() == QUEST_HOMEWARD_BOUND)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
DoScriptText(SAY_READY, creature, player);
creature->setFaction(113);
}
@@ -186,7 +186,7 @@ CreatureAI* GetAI_npc_swiftmountain(Creature *_Creature)
thisAI->AddWaypoint(70, -4938.3, -1100.41, -50.71, 5000);
thisAI->AddWaypoint(71, -4937.34, -1102.87, -49.82);
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*#####
diff --git a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
index 78619c47782..fb558dc31a3 100644
--- a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
+++ b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
@@ -52,8 +52,8 @@ struct TRINITY_DLL_DECL npc_calvin_montagueAI : public ScriptedAI
void JustDied(Unit* Killer)
{
if( Killer->GetTypeId() == TYPEID_PLAYER )
- if( ((Player*)Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE )
- ((Player*)Killer)->AreaExploredOrEventHappens(QUEST_590);
+ if( CAST_PLR(Killer)->GetQuestStatus(QUEST_590) == QUEST_STATUS_INCOMPLETE )
+ CAST_PLR(Killer)->AreaExploredOrEventHappens(QUEST_590);
}
void UpdateAI(const uint32 diff)
@@ -75,7 +75,7 @@ bool QuestAccept_npc_calvin_montague(Player* player, Creature* creature, Quest c
{
creature->setFaction(FACTION_HOSTILE);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
- ((npc_calvin_montagueAI*)creature->AI())->AttackStart(player);
+ CAST_AI(npc_calvin_montagueAI, creature->AI())->AttackStart(player);
}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
index a75b9310824..3221466bfd3 100644
--- a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
+++ b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
@@ -51,7 +51,7 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI
{
boss_archaedasAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)m_creature->GetInstanceData());
+ pInstance = (m_creature->GetInstanceData());
}
uint32 Tremor_Timer;
@@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_archaedas_minionsAI : public ScriptedAI
{
mob_archaedas_minionsAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)m_creature->GetInstanceData());
+ pInstance = (m_creature->GetInstanceData());
}
uint32 Arcing_Timer;
@@ -336,7 +336,7 @@ bool GOHello_go_altar_of_archaedas(Player *player, GameObject* go)
return false; // not enough people
}
- ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData());
+ ScriptedInstance* pInstance = (player->GetInstanceData());
if (!pInstance) return false;
pInstance->SetData(NULL,0);
pInstance->SetData64(0,player->GetGUID()); // activate archaedas
@@ -359,7 +359,7 @@ struct TRINITY_DLL_DECL mob_stonekeepersAI : public ScriptedAI
{
mob_stonekeepersAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)m_creature->GetInstanceData());
+ pInstance = (m_creature->GetInstanceData());
}
bool InCombat;
@@ -423,7 +423,7 @@ static uint32 altarOfTheKeeperCounter=0;
bool GOHello_go_altar_of_the_keepers(Player *player, GameObject* go)
{
- ScriptedInstance* pInstance = ((ScriptedInstance*)player->GetInstanceData());
+ ScriptedInstance* pInstance = (player->GetInstanceData());
if (!pInstance) return true;
bool alreadyUsed;
diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
index b4e12f60ead..482165b0b55 100644
--- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
+++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
@@ -134,8 +134,8 @@ bool ChooseReward_npc_lady_sylvanas_windrunner(Player *player, Creature *_Creatu
{
if( _Quest->GetQuestId() == 9180 )
{
- ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->LamentEvent = true;
- ((npc_lady_sylvanas_windrunnerAI*)_Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT);
+ CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->LamentEvent = true;
+ CAST_AI(npc_lady_sylvanas_windrunnerAI, _Creature->AI())->DoPlaySoundToSet(_Creature,SOUND_CREDIT);
_Creature->CastSpell(_Creature,SPELL_SYLVANAS_CAST,false);
for( uint8 i = 0; i < 4; ++i)
diff --git a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp
index c3987526126..f8e7976f541 100644
--- a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp
+++ b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp
@@ -77,7 +77,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI
case 55:
DoScriptText(SAY_FINISH, m_creature, player);
if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_CHASING_AME,m_creature);
+ CAST_PLR(player)->GroupEventHappens(QUEST_CHASING_AME,m_creature);
break;
}
@@ -101,7 +101,7 @@ struct TRINITY_DLL_DECL npc_ameAI : public npc_escortAI
if (PlayerGUID)
{
if (Player* player = Unit::GetPlayer(PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_CHASING_AME);
+ CAST_PLR(player)->FailQuest(QUEST_CHASING_AME);
}
}
@@ -124,7 +124,7 @@ bool QuestAccept_npc_ame(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == QUEST_CHASING_AME)
{
- ((npc_escortAI*)(creature->AI()))->Start(false, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(false, true, false, player->GetGUID());
DoScriptText(SAY_READY, creature, player);
creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
// Change faction so mobs attack
@@ -194,7 +194,7 @@ CreatureAI* GetAI_npc_ame(Creature *_Creature)
thisAI->AddWaypoint(55, -6302.43, -1181.32, -269.328, 5000);
thisAI->AddWaypoint(56, -6298.87, -1185.79, -269.278);
- return (CreatureAI*)thisAI;
+ return thisAI;
}
void AddSC_ungoro_crater()
diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
index f164e473148..e3c66109dfc 100644
--- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
+++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
@@ -69,7 +69,7 @@ struct TRINITY_DLL_DECL boss_ingvar_the_plundererAI : public ScriptedAI
{
boss_ingvar_the_plundererAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = c->GetMap()->IsHeroic();
}
@@ -285,7 +285,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
{
mob_annhylde_the_callerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
float x,y,z;
@@ -357,15 +357,15 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
Resurect_Phase = 2;
}else if (Resurect_Phase == 2)
{
- Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR));
+ Creature* ingvar = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_INGVAR));
if(ingvar)
{
ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY);
//ingvar->CastSpell(ingvar,SPELL_INGVAR_TRANSFORM,false);
ingvar->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_INGVAR_UNDEAD); // Visual Hack - when he dies he becomes human model -> wrong
- Creature* c_ingvar = (Creature*)ingvar;
+ Creature* c_ingvar = ingvar;
- ((boss_ingvar_the_plundererAI*)(c_ingvar->AI()))->StartZombiePhase();
+ CAST_AI(boss_ingvar_the_plundererAI, (c_ingvar->AI()))->StartZombiePhase();
m_creature->GetMotionMaster()->MovePoint(2,x+1,y,z+30);
Resurect_Phase++;
@@ -388,7 +388,7 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI
{
mob_ingvar_throw_dummyAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = c->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
index 3ba7d16dd41..a145ddcc425 100644
--- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
+++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
{
boss_kelesethAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
Heroic = c->GetMap()->IsHeroic();
}
@@ -193,7 +193,7 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
Creature* Chains = m_creature->SummonCreature(CREATURE_FROSTTOMB, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 20000);
if(Chains)
{
- ((mob_frost_tombAI*)Chains->AI())->SetPrisoner(target);
+ CAST_AI(mob_frost_tombAI, Chains->AI())->SetPrisoner(target);
Chains->CastSpell(target, SPELL_FROST_TOMB, true);
DoScriptText(SAY_FROST_TOMB, m_creature);
@@ -210,7 +210,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI
{
mob_vrykul_skeletonAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
index 8e3e08b8b71..8078716d2d8 100644
--- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
+++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
@@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
{
boss_skarvald_the_constructorAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
{
Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN));
if(dalronn && dalronn->isDead())
- ((Creature*)dalronn)->Respawn();
+ CAST_CRE(dalronn)->Respawn();
if(pInstance)
pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
@@ -206,7 +206,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
{
boss_dalronn_the_controllerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
HeroicMode = m_creature->GetMap()->IsHeroic();
}
@@ -238,7 +238,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
{
Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD));
if(skarvald && skarvald->isDead())
- ((Creature*)skarvald)->Respawn();
+ CAST_CRE(skarvald)->Respawn();
if(pInstance)
pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp
index 73ffafca12f..517d1270f73 100644
--- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp
+++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/utgarde_keep.cpp
@@ -30,7 +30,7 @@ struct TRINITY_DLL_DECL npc_dragonflayer_forge_masterAI : public ScriptedAI
{
npc_dragonflayer_forge_masterAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
fm_Type = 0;
}
diff --git a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
index 5ab59db8c40..ce0d76e643d 100644
--- a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
+++ b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
@@ -122,32 +122,32 @@ struct TRINITY_DLL_DECL npc_the_scourge_cauldronAI : public ScriptedAI
switch(m_creature->GetAreaId())
{
case 199: //felstone
- if( ((Player*)who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE ||
- ((Player*)who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(5216) == QUEST_STATUS_INCOMPLETE ||
+ CAST_PLR(who)->GetQuestStatus(5229) == QUEST_STATUS_INCOMPLETE )
{
DoSpawnCreature(11075,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
DoDie();
}
break;
case 200: //dalson
- if( ((Player*)who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE ||
- ((Player*)who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(5219) == QUEST_STATUS_INCOMPLETE ||
+ CAST_PLR(who)->GetQuestStatus(5231) == QUEST_STATUS_INCOMPLETE )
{
DoSpawnCreature(11077,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
DoDie();
}
break;
case 201: //gahrron
- if( ((Player*)who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE ||
- ((Player*)who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(5225) == QUEST_STATUS_INCOMPLETE ||
+ CAST_PLR(who)->GetQuestStatus(5235) == QUEST_STATUS_INCOMPLETE )
{
DoSpawnCreature(11078,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
DoDie();
}
break;
case 202: //writhing
- if( ((Player*)who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE ||
- ((Player*)who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE )
+ if( CAST_PLR(who)->GetQuestStatus(5222) == QUEST_STATUS_INCOMPLETE ||
+ CAST_PLR(who)->GetQuestStatus(5233) == QUEST_STATUS_INCOMPLETE )
{
DoSpawnCreature(11076,0,0,0,m_creature->GetOrientation(),TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
DoDie();
diff --git a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
index 083820e7df9..f9e04a5186f 100644
--- a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
+++ b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
@@ -165,7 +165,7 @@ bool QuestAccept_npc_daphne_stilwell(Player* pPlayer, Creature* pCreature, const
if (pQuest->GetQuestId() == QUEST_TOME_VALOR)
{
DoScriptText(SAY_DS_START, pCreature);
- ((npc_escortAI*)(pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID());
+ CAST_AI(npc_escortAI, (pCreature->AI()))->Start(true, true, true, pPlayer->GetGUID());
}
return true;
@@ -177,7 +177,7 @@ CreatureAI* GetAI_npc_daphne_stilwell(Creature* pCreature)
thisAI->FillPointMovementListForCreature();
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*######
@@ -251,7 +251,7 @@ bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest co
{
if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, true, player->GetGUID());
DoScriptText(SAY_START, creature, player);
}
@@ -264,7 +264,7 @@ CreatureAI* GetAI_npc_defias_traitor(Creature* pCreature)
thisAI->FillPointMovementListForCreature();
- return (CreatureAI*)thisAI;
+ return thisAI;
}
void AddSC_westfall()
diff --git a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp
index 57cd2c92d77..67830d78a10 100644
--- a/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp
+++ b/src/bindings/scripts/scripts/zone/wintergrasp/wintergrasp.cpp
@@ -40,9 +40,9 @@ bool GossipSelect_npc_demolisher_engineerer(Player* player, Creature* me, uint32
player->CLOSE_GOSSIP_MENU();
switch(uiAction - GOSSIP_ACTION_INFO_DEF)
{
- case 0: player->CastSpell(player, 56663, false); break;
- case 1: player->CastSpell(player, 56575, false); break;
- case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false); break;
+ case 0: player->CastSpell(player, 56663, false, NULL, NULL, me->GetGUID()); break;
+ case 1: player->CastSpell(player, 56575, false, NULL, NULL, me->GetGUID()); break;
+ case 2: player->CastSpell(player, player->GetTeamId() ? 61408 : 56661, false, NULL, NULL, me->GetGUID()); break;
}
return true;
diff --git a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
index 6fdb4421b94..a4f2f32b250 100644
--- a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
+++ b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
@@ -333,7 +333,7 @@ bool QuestAccept_npc_kayra_longmane(Player* player, Creature* creature, Quest co
{
if (quest->GetQuestId() == QUEST_EFU)
{
- ((npc_escortAI*)(creature->AI()))->Start(true, true, false, player->GetGUID());
+ CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, false, player->GetGUID());
creature->setFaction(113);
}
return true;
@@ -371,7 +371,7 @@ CreatureAI* GetAI_npc_kayra_longmaneAI(Creature* _Creature)
thisAI->AddWaypoint(25, -488.45, 5447.83, 22.38);
thisAI->AddWaypoint(26, -449.65, 5463.78, 21.77, 11000);//SAY_PROGRESS_6
- return (CreatureAI*)thisAI;
+ return thisAI;
}
/*######
## AddSC
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
index 85ba26ef20d..7861232026e 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
@@ -61,10 +61,10 @@ struct TRINITY_DLL_DECL boss_akilzonAI : public ScriptedAI
{
boss_akilzonAI(Creature *c) : ScriptedAI(c)
{
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_ELECTRICAL_DAMAGE);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_ELECTRICAL_DAMAGE);
if(TempSpell)
TempSpell->EffectBasePoints[1] = 49;//disable bugged lightning until fixed in core
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -383,7 +383,7 @@ struct TRINITY_DLL_DECL mob_soaring_eagleAI : public ScriptedAI
void EnterCombat(Unit *who) {DoZoneInCombat();}
- void MoveInLineOfSight(Unit *) {}
+ void MoveInLineOfSight(Unit* who) {}
void MovementInform(uint32, uint32)
{
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
index 279e8985774..fc1fb3ce592 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
@@ -75,9 +75,9 @@ struct TRINITY_DLL_DECL boss_halazziAI : public ScriptedAI
{
boss_halazziAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
// need to find out what controls totem's spell cooldown
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_LIGHTNING);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_LIGHTNING);
if(TempSpell && TempSpell->CastingTimeIndex != 5)
TempSpell->CastingTimeIndex = 5; // 2000 ms casting time
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
index 26229261905..b57cc4e0753 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
@@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL boss_hexlord_addAI : public ScriptedAI
boss_hexlord_addAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
void Reset() {}
@@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
{
boss_hex_lord_malacrassAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
SelectAddEntry();
for(uint8 i = 0; i < 4; ++i)
AddGUID[i] = 0;
@@ -257,7 +257,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
{
Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]);
if(Temp && Temp->isAlive())
- ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim());
+ CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim());
else
{
EnterEvadeMode();
@@ -353,7 +353,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
{
Unit* Temp = Unit::GetUnit((*m_creature),AddGUID[i]);
if(Temp && Temp->isAlive() && !Temp->getVictim())
- ((Creature*)Temp)->AI()->AttackStart(m_creature->getVictim());
+ CAST_CRE(Temp)->AI()->AttackStart(m_creature->getVictim());
}
CheckAddState_Timer = 5000;
}else CheckAddState_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
index 852be55c195..e8564c84a10 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
@@ -101,9 +101,9 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
{
boss_janalaiAI(Creature *c) : ScriptedAI(c)
{
- pInstance =((ScriptedInstance*)c->GetInstanceData());
+ pInstance =(c->GetInstanceData());
- SpellEntry *TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(SPELL_HATCH_EGG);
+ SpellEntry *TempSpell = GET_SPELL(SPELL_HATCH_EGG);
if(TempSpell && TempSpell->EffectImplicitTargetA[0] != 1)
{
TempSpell->EffectImplicitTargetA[0] = 1;
@@ -481,7 +481,7 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI
{
mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c)
{
- pInstance =((ScriptedInstance*)c->GetInstanceData());
+ pInstance =(c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -543,8 +543,8 @@ struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI
}
void EnterCombat(Unit* who) {}
- void AttackStart(Unit*) {}
- void MoveInLineOfSight(Unit*) {}
+ void AttackStart(Unit* who) {}
+ void MoveInLineOfSight(Unit* who) {}
void MovementInform(uint32, uint32)
{
if(waypoint == 5)
@@ -612,7 +612,7 @@ struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI
{
mob_hatchlingAI(Creature *c) : ScriptedAI(c)
{
- pInstance =((ScriptedInstance*)c->GetInstanceData());
+ pInstance =(c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
index 1f810059997..96038629cb3 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
@@ -95,7 +95,7 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI
{
MoveEvent = true;
MovePhase = 0;
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
index c342b8283d5..ea1eddff107 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
@@ -143,7 +143,7 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
{
boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(m_creature)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
index 8bc21dbba1d..dd16b652c0d 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
@@ -40,7 +40,7 @@ struct TRINITY_DLL_DECL npc_forest_frogAI : public ScriptedAI
{
npc_forest_frogAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -112,7 +112,7 @@ struct TRINITY_DLL_DECL npc_zulaman_hostageAI : public ScriptedAI
uint64 PlayerGUID;
void Reset() {}
void EnterCombat(Unit *who) {}
- void JustDied(Unit *)
+ void JustDied(Unit* who)
{
Player* player = Unit::GetPlayer(PlayerGUID);
if(player) player->SendLoot(m_creature->GetGUID(), LOOT_CORPSE);
@@ -139,7 +139,7 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3
return true;
_Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData());
+ ScriptedInstance* pInstance = (_Creature->GetInstanceData());
if(pInstance)
{
//uint8 progress = pInstance->GetData(DATA_CHESTLOOTED);
@@ -158,8 +158,8 @@ bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint3
/*Creature* summon = _Creature->SummonCreature(HostageInfo[progress], x-2, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 0);
if(summon)
{
- ((npc_zulaman_hostageAI*)summon->AI())->PlayerGUID = player->GetGUID();
- ((npc_zulaman_hostageAI*)summon->AI())->IsLoot = true;
+ CAST_AI(npc_zulaman_hostageAI, summon->AI())->PlayerGUID = player->GetGUID();
+ CAST_AI(npc_zulaman_hostageAI, summon->AI())->IsLoot = true;
summon->SetDisplayId(10056);
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
diff --git a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
index bdc5c264c51..80db24d7871 100644
--- a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
+++ b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL npc_sergeant_blyAI : public ScriptedAI
{
npc_sergeant_blyAI(Creature *c) : ScriptedAI(c)
{
- //pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ //pInstance = (c->GetInstanceData());
}
//ScriptedInstance* pInstance;
@@ -121,7 +121,7 @@ bool GossipSelect_npc_sergeant_bly(Player *player, Creature *_Creature, uint32 s
{
player->CLOSE_GOSSIP_MENU();
_Creature->setFaction(FACTION_HOSTILE);
- ((npc_sergeant_blyAI*)_Creature->AI())->AttackStart(player);
+ CAST_AI(npc_sergeant_blyAI, _Creature->AI())->AttackStart(player);
}
return true;
}
@@ -141,7 +141,7 @@ struct TRINITY_DLL_DECL npc_weegli_blastfuseAI : public ScriptedAI
{
npc_weegli_blastfuseAI(Creature *c) : ScriptedAI(c)
{
- //pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ //pInstance = (c->GetInstanceData());
}
//ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
index a0f87e6cce5..588a4db8271 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
@@ -38,7 +38,7 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI
{
boss_arlokkAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
index 0de85d55986..2202fecc19c 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_hakkarAI : public ScriptedAI
{
boss_hakkarAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
index 37a913a5df3..7208fcf3ec1 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
@@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_hazzarahAI : public ScriptedAI
Illusion = m_creature->SummonCreature(15163,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,30000);
if(Illusion)
- ((CreatureAI*)Illusion->AI())->AttackStart(target);
+ (Illusion->AI())->AttackStart(target);
}
Illusions_Timer = 15000 + rand()%10000;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
index b691bc864ce..f4d99434402 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
@@ -45,7 +45,7 @@ struct TRINITY_DLL_DECL boss_jeklikAI : public ScriptedAI
{
boss_jeklikAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -212,7 +212,7 @@ struct TRINITY_DLL_DECL mob_batriderAI : public ScriptedAI
{
mob_batriderAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
index 26d19c8763b..b5271291a4d 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
@@ -43,7 +43,7 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
{
boss_jindoAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
@@ -168,7 +168,7 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI
{
mob_healing_wardAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 Heal_Timer;
@@ -207,7 +207,7 @@ struct TRINITY_DLL_DECL mob_shade_of_jindoAI : public ScriptedAI
{
mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 ShadowShock_Timer;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
index 13eac015d6d..3c10e16dde7 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_mandokirAI : public ScriptedAI
{
boss_mandokirAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 KillCount;
@@ -270,7 +270,7 @@ struct TRINITY_DLL_DECL mob_ohganAI : public ScriptedAI
{
mob_ohganAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 SunderArmor_Timer;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
index f85523dc65e..e77f08bbc39 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
@@ -42,7 +42,7 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI
{
boss_marliAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
index 0dcfa4549db..23fe5901be9 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
@@ -54,7 +54,7 @@ struct TRINITY_DLL_DECL boss_thekalAI : public ScriptedAI
{
boss_thekalAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 MortalCleave_Timer;
@@ -241,7 +241,7 @@ struct TRINITY_DLL_DECL mob_zealot_lorkhanAI : public ScriptedAI
{
mob_zealot_lorkhanAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 Shield_Timer;
@@ -385,7 +385,7 @@ struct TRINITY_DLL_DECL mob_zealot_zathAI : public ScriptedAI
{
mob_zealot_zathAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
uint32 SweepingStrikes_Timer;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
index 7ab59285ebe..7c72b6f79c0 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
@@ -41,7 +41,7 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI
{
boss_venoxisAI(Creature *c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = (c->GetInstanceData());
}
ScriptedInstance *pInstance;
diff --git a/src/game/AccountMgr.cpp b/src/game/AccountMgr.cpp
index 86de06a30e0..66660766dae 100644
--- a/src/game/AccountMgr.cpp
+++ b/src/game/AccountMgr.cpp
@@ -18,11 +18,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "AccountMgr.h"
#include "Database/DatabaseEnv.h"
+#include "Policies/SingletonImp.h"
+
+#include "AccountMgr.h"
#include "ObjectAccessor.h"
#include "Player.h"
-#include "Policies/SingletonImp.h"
#include "Util.h"
extern DatabaseType LoginDatabase;
diff --git a/src/game/AccountMgr.h b/src/game/AccountMgr.h
index a402b48ad4f..2be0178998e 100644
--- a/src/game/AccountMgr.h
+++ b/src/game/AccountMgr.h
@@ -21,9 +21,10 @@
#ifndef _ACCMGR_H
#define _ACCMGR_H
+#include <string>
+
#include "Common.h"
#include "Policies/Singleton.h"
-#include <string>
enum AccountOpResult
{
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp
index 2cf8949d4a7..c6ffd223e98 100644
--- a/src/game/AchievementMgr.cpp
+++ b/src/game/AchievementMgr.cpp
@@ -16,24 +16,26 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "AchievementMgr.h"
#include "Common.h"
-#include "Player.h"
-#include "WorldPacket.h"
#include "DBCEnums.h"
-#include "GameEventMgr.h"
#include "ObjectMgr.h"
-#include "Guild.h"
-#include "Database/DatabaseEnv.h"
#include "World.h"
-#include "SpellMgr.h"
+#include "WorldPacket.h"
+#include "Database/DatabaseEnv.h"
+#include "Policies/SingletonImp.h"
+
+#include "AchievementMgr.h"
#include "ArenaTeam.h"
-#include "ProgressBar.h"
-#include "GridNotifiersImpl.h"
#include "CellImpl.h"
+#include "GameEventMgr.h"
+#include "GridNotifiersImpl.h"
+#include "Guild.h"
#include "Language.h"
+#include "Player.h"
+#include "ProgressBar.h"
+#include "SpellMgr.h"
+
-#include "Policies/SingletonImp.h"
INSTANTIATE_SINGLETON_1(AchievementGlobalMgr);
diff --git a/src/game/AchievementMgr.h b/src/game/AchievementMgr.h
index 73729f30998..3dd87737960 100644
--- a/src/game/AchievementMgr.h
+++ b/src/game/AchievementMgr.h
@@ -18,15 +18,15 @@
#ifndef __MANGOS_ACHIEVEMENTMGR_H
#define __MANGOS_ACHIEVEMENTMGR_H
+#include <map>
+#include <string>
+
#include "Common.h"
#include "Policies/Singleton.h"
#include "Database/DatabaseEnv.h"
#include "DBCEnums.h"
#include "DBCStores.h"
-#include <map>
-#include <string>
-
typedef std::list<AchievementCriteriaEntry const*> AchievementCriteriaEntryList;
typedef std::list<AchievementEntry const*> AchievementEntryList;
diff --git a/src/game/AddonHandler.cpp b/src/game/AddonHandler.cpp
index 4dd25c56b26..cac4261944b 100644
--- a/src/game/AddonHandler.cpp
+++ b/src/game/AddonHandler.cpp
@@ -18,12 +18,14 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "zlib/zlib.h"
+
#include "AddonHandler.h"
#include "Database/DatabaseEnv.h"
+#include "Policies/SingletonImp.h"
#include "Opcodes.h"
+
#include "Log.h"
-#include "Policies/SingletonImp.h"
-#include "zlib/zlib.h"
INSTANTIATE_SINGLETON_1( AddonHandler );
diff --git a/src/game/AddonHandler.h b/src/game/AddonHandler.h
index fd9ad395924..f0d5bcac7f1 100644
--- a/src/game/AddonHandler.h
+++ b/src/game/AddonHandler.h
@@ -22,9 +22,10 @@
#define __ADDONHANDLER_H
#include "Common.h"
+#include "Config/ConfigEnv.h"
#include "Policies/Singleton.h"
+
#include "WorldPacket.h"
-#include "Config/ConfigEnv.h"
class AddonHandler
{
diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp
index 5b2685017cf..f777b0ee8b1 100644
--- a/src/game/ArenaTeam.cpp
+++ b/src/game/ArenaTeam.cpp
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "WorldPacket.h"
#include "ObjectMgr.h"
+#include "WorldPacket.h"
+
#include "ArenaTeam.h"
ArenaTeam::ArenaTeam()
diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp
index ab3319ce2ad..be802e822c0 100644
--- a/src/game/ArenaTeamHandler.cpp
+++ b/src/game/ArenaTeamHandler.cpp
@@ -18,14 +18,15 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "WorldSession.h"
+#include "Player.h"
+#include "World.h"
#include "WorldPacket.h"
-#include "Log.h"
+#include "WorldSession.h"
#include "Database/DatabaseEnv.h"
-#include "Player.h"
-#include "ObjectMgr.h"
+
#include "ArenaTeam.h"
-#include "World.h"
+#include "Log.h"
+#include "ObjectMgr.h"
#include "SocialMgr.h"
void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket & recv_data)
diff --git a/src/game/AuctionHouseBot.cpp b/src/game/AuctionHouseBot.cpp
index 27315f8e2e9..4ef4eb0e494 100644
--- a/src/game/AuctionHouseBot.cpp
+++ b/src/game/AuctionHouseBot.cpp
@@ -1,17 +1,19 @@
-#include "AuctionHouseBot.h"
-#include "Bag.h"
+#include <vector>
+#include <iostream>
+#include "time.h"
+
+#include "ObjectMgr.h"
+#include "World.h"
+#include "WorldSession.h"
#include "Config/ConfigEnv.h"
#include "Database/DatabaseEnv.h"
+
+#include "AuctionHouseBot.h"
+#include "AuctionHouseMgr.h"
+#include "Bag.h"
#include "Item.h"
#include "Log.h"
-#include "ObjectMgr.h"
-#include "AuctionHouseMgr.h"
#include "Player.h"
-#include "World.h"
-#include "WorldSession.h"
-#include "time.h"
-#include <vector>
-#include <iostream>
using namespace std;
diff --git a/src/game/AuctionHouseBot.h b/src/game/AuctionHouseBot.h
index 8d5c067a354..9cd073885a3 100644
--- a/src/game/AuctionHouseBot.h
+++ b/src/game/AuctionHouseBot.h
@@ -1,8 +1,11 @@
#ifndef AUCTION_HOUSE_BOT_H
#define AUCTION_HOUSE_BOT_H
+
#include "Common.h"
-#include "Log.h"
#include "Config/ConfigEnv.h"
+
+#include "Log.h"
+
#define AHB_GREY 0
#define AHB_WHITE 1
#define AHB_GREEN 2
diff --git a/src/game/AuctionHouseHandler.cpp b/src/game/AuctionHouseHandler.cpp
index 1a70162de11..d1f399bf570 100644
--- a/src/game/AuctionHouseHandler.cpp
+++ b/src/game/AuctionHouseHandler.cpp
@@ -18,17 +18,19 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "World.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-#include "Opcodes.h"
+
+#include "AuctionHouseBot.h"
+#include "AuctionHouseMgr.h"
#include "Log.h"
-#include "World.h"
-#include "ObjectMgr.h"
-#include "Player.h"
+#include "Opcodes.h"
#include "UpdateMask.h"
-#include "AuctionHouseMgr.h"
#include "Util.h"
-#include "AuctionHouseBot.h"
+
//please DO NOT use iterator++, because it is slower than ++iterator!!!
//post-incrementation is always slower than pre-incrementation !
diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp
index 1b3a96f7584..c8876c36063 100644
--- a/src/game/AuctionHouseMgr.cpp
+++ b/src/game/AuctionHouseMgr.cpp
@@ -17,23 +17,23 @@
*/
#include "Common.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
#include "Database/DatabaseEnv.h"
#include "Database/SQLStorage.h"
+#include "Policies/SingletonImp.h"
#include "DBCStores.h"
-#include "ProgressBar.h"
#include "AccountMgr.h"
#include "AuctionHouseMgr.h"
#include "Item.h"
#include "Language.h"
#include "Log.h"
-#include "ObjectMgr.h"
-#include "Player.h"
-#include "World.h"
-#include "WorldPacket.h"
-#include "WorldSession.h"
+#include "ProgressBar.h"
-#include "Policies/SingletonImp.h"
INSTANTIATE_SINGLETON_1( AuctionHouseMgr );
@@ -66,9 +66,41 @@ AuctionHouseObject * AuctionHouseMgr::GetAuctionsMap( uint32 factionTemplateId )
uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32 time, Item *pItem)
{
- uint32 deposit = pItem->GetProto()->SellPrice * pItem->GetCount() * (time / MIN_AUCTION_TIME );
-
- return uint32(deposit * entry->depositPercent * 3 * sWorld.getRate(RATE_AUCTION_DEPOSIT) / 100.0f );
+ uint32 MSV = pItem->GetProto()->SellPrice;
+ double deposit;
+ double faction_pct;
+ if (MSV > 0)
+ {
+ if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_AUCTION))
+ faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT));
+ else
+ {
+ FactionTemplateEntry const* u_entry = sFactionTemplateStore.LookupEntry(entry->houseId);
+ if(!u_entry)
+ faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT));
+ else if(u_entry->ourMask & FACTION_MASK_ALLIANCE)
+ faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT));
+ else if(u_entry->ourMask & FACTION_MASK_HORDE)
+ faction_pct = (0.15 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT));
+ else
+ faction_pct = (0.75 * (double)sWorld.getRate(RATE_AUCTION_DEPOSIT));
+ }
+ deposit = ((double)MSV * faction_pct * (double)pItem->GetCount()) * (double)(time / MIN_AUCTION_TIME );
+ }
+ else
+ {
+ faction_pct = 0.0f;
+ deposit = 0.0f;
+ }
+ //sLog.outString("SellPrice:\t\t%u", MSV);
+ //sLog.outString("Deposit Percent:\t%f", faction_pct);
+ //sLog.outString("Min Auction Time:\t%u", (time / MIN_AUCTION_TIME ));
+ //sLog.outString("Count:\t\t\t%u", pItem->GetCount());
+ //sLog.outString("Deposit:\t\t%f", deposit);
+ if (deposit > 0)
+ return (uint32)deposit;
+ else
+ return 0;
}
//does not clear ram
diff --git a/src/game/AuctionHouseMgr.h b/src/game/AuctionHouseMgr.h
index cfc68497e47..2a106cf20f9 100644
--- a/src/game/AuctionHouseMgr.h
+++ b/src/game/AuctionHouseMgr.h
@@ -21,9 +21,10 @@
#ifndef _AUCTION_HOUSE_MGR_H
#define _AUCTION_HOUSE_MGR_H
-#include "SharedDefines.h"
#include "Policies/Singleton.h"
+#include "SharedDefines.h"
+
class Item;
class Player;
class WorldPacket;
diff --git a/src/game/Bag.cpp b/src/game/Bag.cpp
index 1edbc06474d..86befec7550 100644
--- a/src/game/Bag.cpp
+++ b/src/game/Bag.cpp
@@ -19,9 +19,10 @@
*/
#include "Common.h"
-#include "Bag.h"
#include "ObjectMgr.h"
#include "Database/DatabaseEnv.h"
+
+#include "Bag.h"
#include "Log.h"
#include "UpdateData.h"
diff --git a/src/game/Bag.h b/src/game/Bag.h
index 1c341b5611d..3ae786512ce 100644
--- a/src/game/Bag.h
+++ b/src/game/Bag.h
@@ -24,8 +24,8 @@
// Maximum 36 Slots ( (CONTAINER_END - CONTAINER_FIELD_SLOT_1)/2
#define MAX_BAG_SIZE 36 // 2.0.12
-#include "ItemPrototype.h"
#include "Item.h"
+#include "ItemPrototype.h"
class Bag : public Item
{
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index 43c3516722b..3fd554c5163 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -18,22 +18,24 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
#include "Player.h"
+#include "ObjectMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+
+#include "ArenaTeam.h"
#include "BattleGround.h"
#include "BattleGroundMgr.h"
#include "Creature.h"
-#include "MapManager.h"
+#include "Formulas.h"
+#include "GridNotifiersImpl.h"
+#include "Group.h"
#include "Language.h"
+#include "MapManager.h"
+#include "Object.h"
#include "SpellAuras.h"
-#include "ArenaTeam.h"
-#include "World.h"
-#include "Group.h"
-#include "ObjectMgr.h"
-#include "WorldPacket.h"
#include "Util.h"
-#include "Formulas.h"
-#include "GridNotifiersImpl.h"
+
namespace MaNGOS
{
@@ -1277,10 +1279,56 @@ void BattleGround::RemoveFromBGFreeSlotQueue()
// returns the number how many players can join battleground to MaxPlayersPerTeam
uint32 BattleGround::GetFreeSlotsForTeam(uint32 Team) const
{
- //return free slot count to MaxPlayerPerTeam
- if (GetStatus() == STATUS_WAIT_JOIN || GetStatus() == STATUS_IN_PROGRESS)
+ //if BG is starting ... invite anyone
+ if (GetStatus() == STATUS_WAIT_JOIN)
return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0;
-
+ //if BG is already started .. do not allow to join too much players of one faction
+ uint32 otherTeam;
+ uint32 otherIn;
+ if (Team == ALLIANCE)
+ {
+ otherTeam = GetInvitedCount(HORDE);
+ otherIn = GetPlayersCountByTeam(HORDE);
+ }
+ else
+ {
+ otherTeam = GetInvitedCount(ALLIANCE);
+ otherIn = GetPlayersCountByTeam(ALLIANCE);
+ }
+ if (GetStatus() == STATUS_IN_PROGRESS)
+ {
+ // difference based on ppl invited (not necessarily entered battle)
+ // default: allow 0
+ uint32 diff = 0;
+ // allow join one person if the sides are equal (to fill up bg to minplayersperteam)
+ if (otherTeam == GetInvitedCount(Team))
+ diff = 1;
+ // allow join more ppl if the other side has more players
+ else if(otherTeam > GetInvitedCount(Team))
+ diff = otherTeam - GetInvitedCount(Team);
+
+ // difference based on max players per team (don't allow inviting more)
+ uint32 diff2 = (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0;
+ // difference based on players who already entered
+ // default: allow 0
+ uint32 diff3 = 0;
+ // allow join one person if the sides are equal (to fill up bg minplayersperteam)
+ if (otherIn == GetPlayersCountByTeam(Team))
+ diff3 = 1;
+ // allow join more ppl if the other side has more players
+ else if (otherIn > GetPlayersCountByTeam(Team))
+ diff3 = otherIn - GetPlayersCountByTeam(Team);
+ // or other side has less than minPlayersPerTeam
+ else if (GetInvitedCount(Team) <= GetMinPlayersPerTeam())
+ diff3 = GetMinPlayersPerTeam() - GetInvitedCount(Team) + 1;
+
+ // return the minimum of the 3 differences
+
+ // min of diff and diff 2
+ diff = diff < diff2 ? diff : diff2;
+ // min of diff, diff2 and diff3
+ return diff < diff3 ? diff : diff3 ;
+ }
return 0;
}
@@ -1795,7 +1843,7 @@ void BattleGround::SetHoliday(bool is_holiday)
int32 BattleGround::GetObjectType(uint64 guid)
{
- for(uint32 i = 0;i <= m_BgObjects.size(); i++)
+ for(uint32 i = 0; i < m_BgObjects.size(); ++i)
if(m_BgObjects[i] == guid)
return i;
sLog.outError("BattleGround: cheating? a player used a gameobject which isnt supposed to be a usable object!");
diff --git a/src/game/BattleGroundAA.cpp b/src/game/BattleGroundAA.cpp
index 2aac2dde3eb..6133508ece1 100644
--- a/src/game/BattleGroundAA.cpp
+++ b/src/game/BattleGroundAA.cpp
@@ -18,10 +18,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundAA.h"
#include "Language.h"
+#include "Player.h"
BattleGroundAA::BattleGroundAA()
{
diff --git a/src/game/BattleGroundAB.cpp b/src/game/BattleGroundAB.cpp
index 40f60960377..f5fba6f4186 100644
--- a/src/game/BattleGroundAB.cpp
+++ b/src/game/BattleGroundAB.cpp
@@ -18,16 +18,17 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
+#include "ObjectMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+
#include "BattleGround.h"
#include "BattleGroundAB.h"
#include "Creature.h"
-#include "ObjectMgr.h"
#include "Language.h"
-#include "World.h"
+#include "Object.h"
+#include "Player.h"
#include "Util.h"
-#include "WorldPacket.h"
// these variables aren't used outside of this file, so declare them only here
uint32 BG_AB_HonorScoreTicks[BG_HONOR_MODE_NUM] = {
diff --git a/src/game/BattleGroundAV.cpp b/src/game/BattleGroundAV.cpp
index bc0b50d21f0..a93b304e2b9 100644
--- a/src/game/BattleGroundAV.cpp
+++ b/src/game/BattleGroundAV.cpp
@@ -18,15 +18,16 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Player.h"
+#include "ObjectMgr.h"
+#include "WorldPacket.h"
+
#include "BattleGround.h"
#include "BattleGroundAV.h"
-#include "Language.h"
-#include "SpellAuras.h"
#include "Formulas.h"
-#include "WorldPacket.h"
-#include "ObjectMgr.h"
#include "GameObject.h"
+#include "Language.h"
+#include "Player.h"
+#include "SpellAuras.h"
BattleGroundAV::BattleGroundAV()
{
diff --git a/src/game/BattleGroundBE.cpp b/src/game/BattleGroundBE.cpp
index f61ff697faa..d58c2250948 100644
--- a/src/game/BattleGroundBE.cpp
+++ b/src/game/BattleGroundBE.cpp
@@ -18,13 +18,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundBE.h"
+#include "Language.h"
+#include "Object.h"
#include "ObjectMgr.h"
+#include "Player.h"
#include "WorldPacket.h"
-#include "Language.h"
BattleGroundBE::BattleGroundBE()
{
diff --git a/src/game/BattleGroundDS.cpp b/src/game/BattleGroundDS.cpp
index 78360b9b194..0be870be175 100644
--- a/src/game/BattleGroundDS.cpp
+++ b/src/game/BattleGroundDS.cpp
@@ -16,10 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundDS.h"
#include "Language.h"
+#include "Player.h"
BattleGroundDS::BattleGroundDS()
{
diff --git a/src/game/BattleGroundEY.cpp b/src/game/BattleGroundEY.cpp
index 385ec3d9bc1..9b54ecce643 100644
--- a/src/game/BattleGroundEY.cpp
+++ b/src/game/BattleGroundEY.cpp
@@ -18,15 +18,16 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
+#include "ObjectMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+
#include "BattleGround.h"
#include "BattleGroundEY.h"
#include "Creature.h"
-#include "ObjectMgr.h"
#include "Language.h"
-#include "World.h" //music
-#include "WorldPacket.h"
+#include "Object.h"
+#include "Player.h"
#include "Util.h"
// these variables aren't used outside of this file, so declare them only here
diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp
index b22c47e75d5..7a772fce8f1 100644
--- a/src/game/BattleGroundHandler.cpp
+++ b/src/game/BattleGroundHandler.cpp
@@ -19,20 +19,21 @@
*/
#include "Common.h"
-#include "WorldPacket.h"
-#include "Opcodes.h"
-#include "Log.h"
-#include "Player.h"
+#include "ObjectAccessor.h"
#include "ObjectMgr.h"
+#include "WorldPacket.h"
#include "WorldSession.h"
-#include "ObjectAccessor.h"
-#include "Object.h"
-#include "Chat.h"
+
+#include "ArenaTeam.h"
#include "BattleGroundMgr.h"
#include "BattleGroundWS.h"
#include "BattleGround.h"
-#include "ArenaTeam.h"
+#include "Chat.h"
#include "Language.h"
+#include "Log.h"
+#include "Player.h"
+#include "Object.h"
+#include "Opcodes.h"
void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
{
diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp
index 561953cbf02..ba94f5917c1 100644
--- a/src/game/BattleGroundMgr.cpp
+++ b/src/game/BattleGroundMgr.cpp
@@ -19,8 +19,12 @@
*/
#include "Common.h"
-#include "SharedDefines.h"
-#include "Player.h"
+#include "ObjectMgr.h"
+#include "World.h"
+#include "WorldPacket.h"
+#include "Policies/SingletonImp.h"
+
+#include "ArenaTeam.h"
#include "BattleGroundMgr.h"
#include "BattleGroundAV.h"
#include "BattleGroundAB.h"
@@ -33,18 +37,13 @@
#include "BattleGroundSA.h"
#include "BattleGroundDS.h"
#include "BattleGroundRV.h"
-#include "MapManager.h"
+#include "Chat.h"
#include "Map.h"
#include "MapInstanced.h"
-#include "ObjectMgr.h"
-#include "ProgressBar.h"
-#include "Chat.h"
-#include "ArenaTeam.h"
-#include "World.h"
-#include "WorldPacket.h"
+#include "MapManager.h"
+#include "Player.h"
#include "ProgressBar.h"
-
-#include "Policies/SingletonImp.h"
+#include "SharedDefines.h"
INSTANTIATE_SINGLETON_1( BattleGroundMgr );
diff --git a/src/game/BattleGroundMgr.h b/src/game/BattleGroundMgr.h
index d9cc9deae13..8d6bd06b020 100644
--- a/src/game/BattleGroundMgr.h
+++ b/src/game/BattleGroundMgr.h
@@ -23,6 +23,7 @@
#include "Common.h"
#include "Policies/Singleton.h"
+
#include "BattleGround.h"
typedef std::map<uint32, BattleGround*> BattleGroundSet;
diff --git a/src/game/BattleGroundNA.cpp b/src/game/BattleGroundNA.cpp
index f46746829e7..92e71c1c283 100644
--- a/src/game/BattleGroundNA.cpp
+++ b/src/game/BattleGroundNA.cpp
@@ -18,13 +18,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundNA.h"
+#include "Language.h"
+#include "Object.h"
#include "ObjectMgr.h"
+#include "Player.h"
#include "WorldPacket.h"
-#include "Language.h"
BattleGroundNA::BattleGroundNA()
{
diff --git a/src/game/BattleGroundRL.cpp b/src/game/BattleGroundRL.cpp
index f8f8bd9fef5..b9f9943bbf2 100644
--- a/src/game/BattleGroundRL.cpp
+++ b/src/game/BattleGroundRL.cpp
@@ -18,12 +18,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
+
#include "BattleGround.h"
#include "BattleGroundRL.h"
-#include "ObjectMgr.h"
#include "Language.h"
+#include "Object.h"
+#include "ObjectMgr.h"
+#include "Player.h"
#include "WorldPacket.h"
BattleGroundRL::BattleGroundRL()
diff --git a/src/game/BattleGroundRV.cpp b/src/game/BattleGroundRV.cpp
index 8c252c35c97..54070961018 100644
--- a/src/game/BattleGroundRV.cpp
+++ b/src/game/BattleGroundRV.cpp
@@ -16,10 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundRV.h"
#include "Language.h"
+#include "Player.h"
BattleGroundRV::BattleGroundRV()
{
diff --git a/src/game/BattleGroundSA.cpp b/src/game/BattleGroundSA.cpp
index c52635a04c7..5f20950070d 100644
--- a/src/game/BattleGroundSA.cpp
+++ b/src/game/BattleGroundSA.cpp
@@ -16,10 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundSA.h"
#include "Language.h"
+#include "Player.h"
BattleGroundSA::BattleGroundSA()
{
diff --git a/src/game/BattleGroundWS.cpp b/src/game/BattleGroundWS.cpp
index 84da0cc9b65..c4a2402ad67 100644
--- a/src/game/BattleGroundWS.cpp
+++ b/src/game/BattleGroundWS.cpp
@@ -18,16 +18,16 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Object.h"
-#include "Player.h"
#include "BattleGround.h"
#include "BattleGroundWS.h"
#include "Creature.h"
#include "GameObject.h"
-#include "ObjectMgr.h"
-#include "WorldPacket.h"
#include "Language.h"
+#include "Object.h"
+#include "ObjectMgr.h"
+#include "Player.h"
#include "World.h"
+#include "WorldPacket.h"
// these variables aren't used outside of this file, so declare them only here
enum BG_WSG_Rewards
diff --git a/src/game/CalendarHandler.cpp b/src/game/CalendarHandler.cpp
index 3cd186c15d3..348cd5297c9 100644
--- a/src/game/CalendarHandler.cpp
+++ b/src/game/CalendarHandler.cpp
@@ -17,12 +17,13 @@
*/
#include "Common.h"
-#include "Log.h"
-#include "Player.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-#include "Opcodes.h"
+
#include "InstanceSaveMgr.h"
+#include "Log.h"
+#include "Opcodes.h"
+#include "Player.h"
void WorldSession::HandleCalendarGetCalendar(WorldPacket &recv_data)
{
diff --git a/src/game/Cell.h b/src/game/Cell.h
index 7e66d5d9f73..6ccd3c96a00 100644
--- a/src/game/Cell.h
+++ b/src/game/Cell.h
@@ -21,10 +21,12 @@
#ifndef TRINITY_CELL_H
#define TRINITY_CELL_H
+#include <cmath>
+
#include "GameSystem/TypeContainer.h"
#include "GameSystem/TypeContainerVisitor.h"
+
#include "GridDefines.h"
-#include <cmath>
class Map;
diff --git a/src/game/CellImpl.h b/src/game/CellImpl.h
index e74e0013a19..362c12579bb 100644
--- a/src/game/CellImpl.h
+++ b/src/game/CellImpl.h
@@ -21,9 +21,10 @@
#ifndef TRINITY_CELLIMPL_H
#define TRINITY_CELLIMPL_H
+#include <cmath>
+
#include "Cell.h"
#include "Map.h"
-#include <cmath>
inline Cell::Cell(CellPair const& p)
{
diff --git a/src/game/Channel.cpp b/src/game/Channel.cpp
index 588eb15f0cc..9bb3463dbdb 100644
--- a/src/game/Channel.cpp
+++ b/src/game/Channel.cpp
@@ -20,8 +20,8 @@
#include "Channel.h"
#include "ObjectMgr.h"
-#include "World.h"
#include "SocialMgr.h"
+#include "World.h"
Channel::Channel(const std::string& name, uint32 channel_id)
: m_announce(true), m_moderate(false), m_name(name), m_flags(0), m_channelId(channel_id), m_ownerGUID(0)
diff --git a/src/game/Channel.h b/src/game/Channel.h
index 924046e4739..c2dd5ecd3ac 100644
--- a/src/game/Channel.h
+++ b/src/game/Channel.h
@@ -21,15 +21,16 @@
#ifndef _CHANNEL_H
#define _CHANNEL_H
-#include "Common.h"
-#include "WorldPacket.h"
-#include "Opcodes.h"
-#include "Player.h"
-
#include <list>
#include <map>
#include <string>
+#include "Common.h"
+
+#include "Opcodes.h"
+#include "Player.h"
+#include "WorldPacket.h"
+
enum ChatNotify
{
CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel.";
diff --git a/src/game/ChannelHandler.cpp b/src/game/ChannelHandler.cpp
index 7359c104751..45cdf8c20b2 100644
--- a/src/game/ChannelHandler.cpp
+++ b/src/game/ChannelHandler.cpp
@@ -18,9 +18,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
+#include "Policies/SingletonImp.h"
+
#include "ObjectMgr.h" // for normalizePlayerName
#include "ChannelMgr.h"
-#include "Policies/SingletonImp.h"
INSTANTIATE_SINGLETON_1( AllianceChannelMgr );
INSTANTIATE_SINGLETON_1( HordeChannelMgr );
diff --git a/src/game/ChannelMgr.h b/src/game/ChannelMgr.h
index 73e69c371ab..aeecfbfa541 100644
--- a/src/game/ChannelMgr.h
+++ b/src/game/ChannelMgr.h
@@ -20,13 +20,14 @@
#ifndef TRINITYCORE_CHANNELMGR_H
#define TRINITYCORE_CHANNELMGR_H
-#include "Channel.h"
-#include "Policies/Singleton.h"
-#include "World.h"
-
#include <map>
#include <string>
+#include "Policies/Singleton.h"
+
+#include "Channel.h"
+#include "World.h"
+
class ChannelMgr
{
public:
diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp
index 0f4cb5ee0b5..51731c11a98 100644
--- a/src/game/CharacterHandler.cpp
+++ b/src/game/CharacterHandler.cpp
@@ -19,28 +19,29 @@
*/
#include "Common.h"
-#include "Database/DatabaseEnv.h"
+#include "ObjectAccessor.h"
+#include "ObjectMgr.h"
+#include "SystemConfig.h"
+#include "World.h"
#include "WorldPacket.h"
-#include "SharedDefines.h"
#include "WorldSession.h"
-#include "Opcodes.h"
-#include "Log.h"
-#include "World.h"
-#include "ObjectMgr.h"
-#include "Player.h"
-#include "Guild.h"
-#include "UpdateMask.h"
#include "Auth/md5.h"
-#include "ObjectAccessor.h"
-#include "Group.h"
+#include "Database/DatabaseEnv.h"
#include "Database/DatabaseImpl.h"
+
+#include "ArenaTeam.h"
+#include "Chat.h"
+#include "Group.h"
+#include "Guild.h"
+#include "Language.h"
+#include "Log.h"
+#include "Opcodes.h"
+#include "Player.h"
#include "PlayerDump.h"
+#include "SharedDefines.h"
#include "SocialMgr.h"
+#include "UpdateMask.h"
#include "Util.h"
-#include "ArenaTeam.h"
-#include "Language.h"
-#include "Chat.h"
-#include "SystemConfig.h"
class LoginQueryHolder : public SqlQueryHolder
{
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index f8c217d5c42..785ecf740ac 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -19,20 +19,21 @@
*/
#include "Common.h"
-#include "Language.h"
-#include "Database/DatabaseEnv.h"
+#include "ObjectMgr.h"
+#include "World.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-#include "Opcodes.h"
+#include "Database/DatabaseEnv.h"
+
+#include "AccountMgr.h"
+#include "CellImpl.h"
+#include "Chat.h"
+#include "GridNotifiersImpl.h"
+#include "Language.h"
#include "Log.h"
-#include "World.h"
-#include "ObjectMgr.h"
+#include "Opcodes.h"
#include "Player.h"
#include "UpdateMask.h"
-#include "Chat.h"
-#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
-#include "AccountMgr.h"
#include "TicketMgr.h"
// Supported shift-links (client generated and server side)
diff --git a/src/game/ChatHandler.cpp b/src/game/ChatHandler.cpp
index 142de50b059..ae9da2d9fe5 100644
--- a/src/game/ChatHandler.cpp
+++ b/src/game/ChatHandler.cpp
@@ -19,25 +19,26 @@
*/
#include "Common.h"
-#include "Log.h"
+#include "ObjectAccessor.h"
+#include "ObjectMgr.h"
+#include "World.h"
#include "WorldPacket.h"
#include "WorldSession.h"
-#include "World.h"
-#include "Opcodes.h"
-#include "ObjectMgr.h"
-#include "Chat.h"
#include "Database/DatabaseEnv.h"
+
+#include "CellImpl.h"
+#include "Chat.h"
#include "ChannelMgr.h"
+#include "GridNotifiersImpl.h"
#include "Group.h"
#include "Guild.h"
-#include "ObjectAccessor.h"
-#include "ScriptCalls.h"
+#include "Language.h"
+#include "Log.h"
+#include "Opcodes.h"
#include "Player.h"
+#include "ScriptCalls.h"
#include "SpellAuras.h"
-#include "Language.h"
#include "Util.h"
-#include "GridNotifiersImpl.h"
-#include "CellImpl.h"
void WorldSession::HandleMessagechatOpcode( WorldPacket & recv_data )
{
diff --git a/src/game/Corpse.cpp b/src/game/Corpse.cpp
index 3df7838cf60..8cc70b3512f 100644
--- a/src/game/Corpse.cpp
+++ b/src/game/Corpse.cpp
@@ -181,6 +181,8 @@ bool Corpse::LoadFromDB(uint32 guid, Field *fields)
float ort = fields[3].GetFloat();
uint32 mapid = fields[4].GetUInt32();
+ Object::_Create(guid, 0, HIGHGUID_CORPSE);
+
if(!LoadValues( fields[5].GetString() ))
{
sLog.outError("Corpse #%d have broken data in `data` field. Can't be loaded.",guid);
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index c695993ce26..7f249b36fbd 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -206,12 +206,6 @@ void Creature::SearchFormationAndPath()
if(!lowguid)
return;
- if(isTrigger())
- {
- SetDefaultMovementType(IDLE_MOTION_TYPE);
- return;
- }
-
bool usePath = (GetDefaultMovementType() == WAYPOINT_MOTION_TYPE);
CreatureGroupInfoType::iterator frmdata = CreatureGroupMap.find(lowguid);
if(frmdata != CreatureGroupMap.end())
@@ -358,9 +352,9 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data )
SelectLevel(GetCreatureInfo());
if (team == HORDE)
- SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_H);
+ setFaction(GetCreatureInfo()->faction_H);
else
- SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, GetCreatureInfo()->faction_A);
+ setFaction(GetCreatureInfo()->faction_A);
if(GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_WORLDEVENT)
SetUInt32Value(UNIT_NPC_FLAGS,GetCreatureInfo()->npcflag | gameeventmgr.GetNPCFlag(this));
@@ -1450,9 +1444,9 @@ float Creature::GetSpellDamageMod(int32 Rank)
bool Creature::CreateFromProto(uint32 guidlow, uint32 Entry, uint32 team, const CreatureData *data)
{
SetZoneScript();
- if(m_zoneScript)
+ if(m_zoneScript && data)
{
- Entry = m_zoneScript->GetCreatureEntry(guidlow, Entry);
+ Entry = m_zoneScript->GetCreatureEntry(guidlow, data);
if(!Entry)
return false;
}
@@ -1721,10 +1715,10 @@ void Creature::setDeathState(DeathState s)
if(s == JUST_DIED)
{
- SetUInt64Value (UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState)
- SetUInt32Value(UNIT_NPC_FLAGS, 0);
- //if(!isPet())
- setActive(false);
+ SetUInt64Value(UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState)
+ SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
+
+ setActive(false);
if(!isPet() && GetCreatureInfo()->SkinLootId)
if ( LootTemplates_Skinning.HaveLootFor(GetCreatureInfo()->SkinLootId) )
@@ -1756,6 +1750,8 @@ void Creature::setDeathState(DeathState s)
SetMeleeDamageSchool(SpellSchools(cinfo->dmgschool));
LoadCreaturesAddon(true);
Motion_Initialize();
+ if(GetCreatureData() && GetPhaseMask() != GetCreatureData()->phaseMask)
+ SetPhaseMask(GetCreatureData()->phaseMask, true);
}
}
@@ -2043,6 +2039,25 @@ void Creature::CallAssistance()
}
}
+void Creature::CallForHelp(float fRadius)
+{
+ if (fRadius <= 0.0f || !getVictim() || isPet() || isCharmed())
+ return;
+
+ CellPair p(MaNGOS::ComputeCellPair(GetPositionX(), GetPositionY()));
+ Cell cell(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+ cell.SetNoCreate();
+
+ MaNGOS::CallOfHelpCreatureInRangeDo u_do(this, getVictim(), fRadius);
+ MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(this, u_do);
+
+ TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker);
+
+ CellLock<GridReadGuard> cell_lock(cell, p);
+ cell_lock->Visit(cell_lock, grid_creature_searcher, *GetMap());
+}
+
bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /*= true*/) const
{
// is it true?
diff --git a/src/game/Creature.h b/src/game/Creature.h
index 0ee6d4618c7..68c353205f7 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -644,6 +644,7 @@ class TRINITY_DLL_SPEC Creature : public Unit
Unit* SelectNearestTarget(float dist = 0) const;
void DoFleeToGetAssistance();
+ void CallForHelp(float fRadius);
void CallAssistance();
void SetNoCallAssistance(bool val) { m_AlreadyCallAssistance = val; }
void SetNoSearchAssistance(bool val) { m_AlreadySearchedAssistance = val; }
diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp
index f61aca24405..143dfec99d3 100644
--- a/src/game/CreatureAI.cpp
+++ b/src/game/CreatureAI.cpp
@@ -149,6 +149,16 @@ bool CreatureAI::UpdateVictim()
if(!me->isInCombat())
return false;
+ if(Unit *victim = me->SelectVictim())
+ AttackStart(victim);
+ return me->getVictim();
+}
+
+bool CreatureAI::UpdateCombatState()
+{
+ if(!me->isInCombat())
+ return false;
+
if(!me->HasReactState(REACT_PASSIVE))
{
if(Unit *victim = me->SelectVictim())
diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h
index d9d437c936c..91fabe30448 100644
--- a/src/game/CreatureAI.h
+++ b/src/game/CreatureAI.h
@@ -72,6 +72,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI
bool UpdateVictim();
bool UpdateVictimWithGaze();
+ bool UpdateCombatState();
void SelectNearestTarget(Unit *who);
public:
diff --git a/src/game/CreatureEventAI.cpp b/src/game/CreatureEventAI.cpp
index e2c51f40804..834741fd2ae 100644
--- a/src/game/CreatureEventAI.cpp
+++ b/src/game/CreatureEventAI.cpp
@@ -29,43 +29,8 @@
#include "GameEventMgr.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "WorldPacket.h"
#include "InstanceData.h"
-namespace MaNGOS
-{
- class CallOfHelpCreatureInRangeDo // do attack at call of help to friendly crearture
- {
- public:
- CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range)
- : i_funit(funit), i_enemy(enemy), i_range(range)
- {}
- void operator()(Creature* u)
- {
- if (u == i_funit)
- return;
-
- if (!u->CanAssistTo(i_funit, i_enemy, false))
- return;
-
- // too far
- if( !i_funit->IsWithinDistInMap(u, i_range) )
- return;
-
- // only if see assisted creature
- if( !i_funit->IsWithinLOSInMap(u) )
- return;
-
- if(u->AI())
- u->AI()->AttackStart(i_enemy);
- }
- private:
- Unit* const i_funit;
- Unit* const i_enemy;
- float i_range;
- };
-}
-
bool CreatureEventAIHolder::UpdateRepeatTimer( Creature* creature, uint32 repeatMin, uint32 repeatMax )
{
if (repeatMin == repeatMax)
@@ -765,21 +730,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
break;
case ACTION_T_CALL_FOR_HELP:
{
- if (!m_creature->getVictim())
- return;
-
- CellPair p(MaNGOS::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
- Cell cell(p);
- cell.data.Part.reserved = ALL_DISTRICT;
- cell.SetNoCreate();
-
- MaNGOS::CallOfHelpCreatureInRangeDo u_do(m_creature, m_creature->getVictim(), action.call_for_help.radius);
- MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo> worker(m_creature, u_do);
-
- TypeContainerVisitor<MaNGOS::CreatureWorker<MaNGOS::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker);
-
- CellLock<GridReadGuard> cell_lock(cell, p);
- cell_lock->Visit(cell_lock, grid_creature_searcher, *m_creature->GetMap());
+ m_creature->CallForHelp(action.call_for_help.radius);
break;
}
break;
diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp
index 574563edcf7..c8021c8bb8b 100644
--- a/src/game/GameObject.cpp
+++ b/src/game/GameObject.cpp
@@ -175,7 +175,7 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa
m_charges = goinfo->spellcaster.charges;
break;
case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING:
- m_goValue->building.health = goinfo->building.damagedHealth + goinfo->building.destroyedHealth;
+ m_goValue->building.health = goinfo->building.intactNumHits + goinfo->building.damagedNumHits;
break;
}
@@ -306,17 +306,13 @@ void GameObject::Update(uint32 /*p_time*/)
bool IsBattleGroundTrap = false;
//FIXME: this is activation radius (in different casting radius that must be selected from spell data)
//TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
- float radius = 0.0f;
- const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId);
- if(spellEntry)
- radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(spellEntry->EffectRadiusIndex[0]));
- else
- radius = goInfo->trap.radius;
+ float radius = goInfo->trap.radius;
+ if(!radius) // i think this is a hack, spell radius is determined by trap radius (spell itself does not have radius)
+ if(const SpellEntry *spellEntry = sSpellStore.LookupEntry(m_spellId))
+ radius = goInfo->trap.radius;
if(!radius)
{
- if(goInfo->trap.cooldown != 3) // cast in other case (at some triggering/linked go/etc explicit call)
- return;
- else
+ if(goInfo->trap.cooldown == 3) // cast in other case (at some triggering/linked go/etc explicit call)
{
if(m_respawnTime > 0)
break;
@@ -324,13 +320,15 @@ void GameObject::Update(uint32 /*p_time*/)
radius = goInfo->trap.cooldown; // battlegrounds gameobjects has data2 == 0 && data5 == 3
IsBattleGroundTrap = true;
}
+ if(!radius)
+ return;
}
bool NeedDespawn = (goInfo->trap.charges != 0);
// Note: this hack with search required until GO casting not implemented
// search unfriendly creature
- if(owner && NeedDespawn) // hunter trap
+ if(owner) // hunter trap
{
Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck checker(this, owner, radius);
Trinity::UnitSearcher<Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck> searcher(this, ok, checker);
@@ -350,11 +348,16 @@ void GameObject::Update(uint32 /*p_time*/)
if (ok)
{
+ // some traps do not have spell but should be triggered
+ if(goInfo->trap.spellId)
+ CastSpell(ok, goInfo->trap.spellId);
//Unit *caster = owner ? owner : ok;
-
- CastSpell(ok, goInfo->trap.spellId);
//caster->CastSpell(ok, goInfo->trap.spellId, true, 0, 0, GetGUID());
- m_cooldownTime = time(NULL) + 4; // 4 seconds
+
+ if(goInfo->trap.cooldown)
+ m_cooldownTime = time(NULL) + goInfo->trap.cooldown;
+ else
+ m_cooldownTime = time(NULL) + 4; // 4 seconds
if(NeedDespawn)
SetLootState(GO_JUST_DEACTIVATED); // can be despawned or destroyed
@@ -1447,12 +1450,12 @@ void GameObject::TakenDamage(uint32 damage)
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.destroyedDisplayId);
- EventInform(m_goInfo->building.destroyedEventId);
+ EventInform(m_goInfo->building.damagedEvent);
}
}
else // from intact to damaged
{
- if(m_goValue->building.health <= m_goInfo->building.destroyedHealth)
+ if(m_goValue->building.health <= m_goInfo->building.damagedNumHits)
{
if(!m_goInfo->building.destroyedDisplayId)
m_goValue->building.health = 0;
@@ -1461,7 +1464,7 @@ void GameObject::TakenDamage(uint32 damage)
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.damagedDisplayId);
- EventInform(m_goInfo->building.damagedEventId);
+ EventInform(m_goInfo->building.intactEvent);
}
}
}
@@ -1470,7 +1473,7 @@ void GameObject::Rebuild()
{
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED + GO_FLAG_DESTROYED);
SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->displayId);
- m_goValue->building.health = m_goInfo->building.damagedHealth + m_goInfo->building.destroyedHealth;
+ m_goValue->building.health = m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits;
}
void GameObject::EventInform(uint32 eventId)
diff --git a/src/game/GameObject.h b/src/game/GameObject.h
index 33c9fa63f9e..bcfdd93c99d 100644
--- a/src/game/GameObject.h
+++ b/src/game/GameObject.h
@@ -350,16 +350,16 @@ struct GameObjectInfo
//33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
struct
{
- uint32 damagedHealth; //0
- uint32 dmgPctState2; //1
+ uint32 intactNumHits; //0
+ uint32 creditProxyCreature; //1
uint32 state1Name; //2
- uint32 damagedEventId; //3
+ uint32 intactEvent; //3
uint32 damagedDisplayId; //4
- uint32 destroyedHealth; //5
- uint32 unk6;
- uint32 unk7;
- uint32 unk8;
- uint32 destroyedEventId; //9
+ uint32 damagedNumHits; //5
+ uint32 empty3; //6
+ uint32 empty4; //7
+ uint32 empty5; //8
+ uint32 damagedEvent; //9
uint32 destroyedDisplayId; //10
} building;
//34 GAMEOBJECT_TYPE_GUILDBANK - empty
diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp
index 5191f4e9313..2e98e8c4e06 100644
--- a/src/game/GossipDef.cpp
+++ b/src/game/GossipDef.cpp
@@ -505,7 +505,7 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID
for (uint32 i=0; i < QUEST_EMOTE_COUNT; ++i)
{
data << uint32(pQuest->DetailsEmote[i]);
- data << uint32(0); // DetailsEmoteDelay
+ data << uint32(pQuest->DetailsEmoteDelay[i]); // DetailsEmoteDelay (in ms)
}
pSession->SendPacket( &data );
@@ -643,7 +643,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest )
sLog.outDebug( "WORLD: Sent SMSG_QUEST_QUERY_RESPONSE questid=%u", pQuest->GetQuestId() );
}
-void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext )
+void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext )
{
std::string Title = pQuest->GetTitle();
std::string OfferRewardText = pQuest->GetOfferRewardText();
@@ -668,7 +668,7 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID,
data << Title;
data << OfferRewardText;
- data << uint32( EnbleNext );
+ data << uint32( EnableNext );
data << uint32(0); // unk
uint32 EmoteCount = 0;
@@ -682,8 +682,8 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID,
data << EmoteCount; // Emote Count
for (uint32 i = 0; i < EmoteCount; ++i)
{
- data << uint32(0); // Delay Emote
- data << pQuest->OfferRewardEmote[i];
+ data << uint32(pQuest->OfferRewardEmoteDelay[i]); // Delay Emote
+ data << uint32(pQuest->OfferRewardEmote[i]);
}
ItemPrototype const *pItem;
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h
index 102a34b5913..88c15f334a1 100644
--- a/src/game/GossipDef.h
+++ b/src/game/GossipDef.h
@@ -203,7 +203,7 @@ class TRINITY_DLL_SPEC PlayerMenu
void SendQuestQueryResponse ( Quest const *pQuest );
void SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID, bool ActivateAccept);
- void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnbleNext );
+ void SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, bool EnableNext );
void SendQuestGiverRequestItems( Quest const *pQuest, uint64 npcGUID, bool Completable, bool CloseOnCancel );
};
#endif
diff --git a/src/game/GridNotifiers.h b/src/game/GridNotifiers.h
index a1bee4df650..dd82ea2bd78 100644
--- a/src/game/GridNotifiers.h
+++ b/src/game/GridNotifiers.h
@@ -32,6 +32,7 @@
#include "GameObject.h"
#include "Player.h"
#include "Unit.h"
+#include "CreatureAI.h"
class Player;
//class Map;
@@ -802,6 +803,25 @@ namespace Trinity
float i_range;
};
+ class AnyUnfriendlyVisibleUnitInObjectRangeCheck
+ {
+ public:
+ AnyUnfriendlyVisibleUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range)
+ : i_obj(obj), i_funit(funit), i_range(range) {}
+
+ bool operator()(Unit* u)
+ {
+ return u->isAlive()
+ && i_obj->IsWithinDistInMap(u, i_range)
+ && !i_funit->IsFriendlyTo(u)
+ && u->isVisibleForOrDetect(i_funit, false);
+ }
+ private:
+ WorldObject const* i_obj;
+ Unit const* i_funit;
+ float i_range;
+ };
+
class CreatureWithDbGUIDCheck
{
public:
@@ -905,6 +925,38 @@ namespace Trinity
float i_range;
};
+ // do attack at call of help to friendly crearture
+ class CallOfHelpCreatureInRangeDo
+ {
+ public:
+ CallOfHelpCreatureInRangeDo(Unit* funit, Unit* enemy, float range)
+ : i_funit(funit), i_enemy(enemy), i_range(range)
+ {}
+ void operator()(Creature* u)
+ {
+ if (u == i_funit)
+ return;
+
+ if (!u->CanAssistTo(i_funit, i_enemy, false))
+ return;
+
+ // too far
+ if (!i_funit->IsWithinDistInMap(u, i_range))
+ return;
+
+ // only if see assisted creature
+ if (!i_funit->IsWithinLOSInMap(u))
+ return;
+
+ if (u->AI())
+ u->AI()->AttackStart(i_enemy);
+ }
+ private:
+ Unit* const i_funit;
+ Unit* const i_enemy;
+ float i_range;
+ };
+
struct AnyDeadUnitCheck
{
bool operator()(Unit* u) { return !u->isAlive(); }
diff --git a/src/game/Group.cpp b/src/game/Group.cpp
index a9d06091619..24e5601abe8 100644
--- a/src/game/Group.cpp
+++ b/src/game/Group.cpp
@@ -1197,7 +1197,7 @@ void Group::_setLeader(const uint64 &guid)
void Group::_removeRolls(const uint64 &guid)
{
- for (Rolls::iterator it = RollId.begin(); it < RollId.end(); ++it)
+ for (Rolls::iterator it = RollId.begin(); it != RollId.end(); ++it)
{
Roll* roll = *it;
Roll::PlayerVote::iterator itr2 = roll->playerVote.find(guid);
diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp
index ddb28e0288d..fe291783d38 100644
--- a/src/game/ItemHandler.cpp
+++ b/src/game/ItemHandler.cpp
@@ -1009,7 +1009,13 @@ void WorldSession::HandleItemNameQueryOpcode(WorldPacket & recv_data)
return;
}
else
- sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item)", itemid);
+ {
+ // listed in dbc or not expected to exist unknown item
+ if(sItemStore.LookupEntry(itemid))
+ sLog.outErrorDb("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (item listed in Item.dbc but not exist in DB)", itemid);
+ else
+ sLog.outError("WORLD: CMSG_ITEM_NAME_QUERY for item %u failed (unknown item, not listed in Item.dbc)", itemid);
+ }
}
void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data)
diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp
index 0cde7dc5eb8..86a689e7383 100644
--- a/src/game/Level1.cpp
+++ b/src/game/Level1.cpp
@@ -2012,7 +2012,7 @@ bool ChatHandler::HandleModifyMountCommand(const char* args)
if (needReportToTarget(chr))
ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetNameLink().c_str());
- chr->SetUInt32Value( UNIT_FIELD_FLAGS , 0x001000 );
+ chr->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP);
chr->Mount(mId);
WorldPacket data( SMSG_FORCE_RUN_SPEED_CHANGE, (8+4+1+4) );
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index d384efc1b07..2082c7e5339 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -63,6 +63,16 @@ bool ChatHandler::HandleAHBotOptionsCommand(const char* args)
if (ahMapIdStr)
{
ahMapID = (uint32) strtoul(ahMapIdStr, NULL, 0);
+ switch (ahMapID)
+ {
+ case 2:
+ case 6:
+ case 7:
+ break;
+ default:
+ opt = NULL;
+ break;
+ }
}
if (!opt)
{
@@ -7114,8 +7124,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
{
///- Find the player
Player *rPlayer;
- std::string rName;
- if(!extractPlayerTarget((char*)args,&rPlayer,NULL,&rName))
+ if(!extractPlayerTarget((char*)args,&rPlayer))
return false;
char* msg_str = strtok(NULL, "");
@@ -7136,7 +7145,7 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
//Confirmation message
- std::string nameLink = playerLink(rName);
+ std::string nameLink = GetNameLink(rPlayer);
PSendSysMessage(LANG_SENDMESSAGE,nameLink.c_str(),msg_str);
return true;
}
diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp
index 78977d4a5dd..5654f540da1 100644
--- a/src/game/LootMgr.cpp
+++ b/src/game/LootMgr.cpp
@@ -1333,7 +1333,7 @@ void LoadLootTemplates_Spell()
}
// output error for any still listed (not referenced from appropriate table) ids
- LootTemplates_QuestMail.ReportUnusedIds(ids_set);
+ LootTemplates_Spell.ReportUnusedIds(ids_set);
}
void LoadLootTemplates_Reference()
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index 9088b1873fa..b155459305d 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -343,6 +343,8 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data )
else // creature charmed
{
uint32 entry = mover->GetEntry();
+ if(mover->m_Vehicle)
+ return;
mover->GetMap()->CreatureRelocation((Creature*)mover, movementInfo.x, movementInfo.y, movementInfo.z, movementInfo.o);
}
}
diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp
index c97196c0d91..7257a8d2682 100644
--- a/src/game/NPCHandler.cpp
+++ b/src/game/NPCHandler.cpp
@@ -157,7 +157,7 @@ void WorldSession::SendTrainerList( uint64 guid, const std::string& strTitle )
// reputation discount
float fDiscountMod = _player->GetReputationPriceDiscount(unit);
- bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProffesionPoints() > 0;
+ bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProfessionPoints() > 0;
uint32 count = 0;
for(TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr)
diff --git a/src/game/NullCreatureAI.h b/src/game/NullCreatureAI.h
index 347f52228b4..2f481c0a758 100644
--- a/src/game/NullCreatureAI.h
+++ b/src/game/NullCreatureAI.h
@@ -61,6 +61,7 @@ class TRINITY_DLL_DECL NullCreatureAI : public CreatureAI
void AttackStart(Unit *) {}
void UpdateAI(const uint32) {}
void EnterEvadeMode() {}
+ void OnCharmed(bool apply) {}
static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; }
};
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index c5271429ddd..8f87e58ed26 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -167,7 +167,7 @@ ObjectMgr::~ObjectMgr()
void ObjectMgr::LoadPlayerInfoInCache()
{
- QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters");
+ QueryResult *result = CharacterDatabase.PQuery("SELECT guid, name, data, class FROM characters");
if(!result)
{
sLog.outError( "Loading Player Cache failed.");
@@ -892,9 +892,6 @@ void ObjectMgr::LoadEquipmentTemplates()
}
sLog.outString( ">> Loaded %u equipment template", sEquipmentStorage.RecordCount );
sLog.outString();
-
- // Creature items can be not listed in item_template
- //sItemStore.Clear(); -- so used in spell casting
}
CreatureModelInfo const* ObjectMgr::GetCreatureModelInfo(uint32 modelid)
@@ -1128,9 +1125,14 @@ void ObjectMgr::LoadCreatures()
}
// I do not know why but in db most display id are not zero
- if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2
+ /*if(data.displayid == 11686 || data.displayid == 24719)
+ {
+ (const_cast<CreatureInfo*>(cInfo))->flags_extra |= CREATURE_FLAG_EXTRA_TRIGGER;
+ }
+ else if(data.displayid == cInfo->Modelid_A1 || data.displayid == cInfo->Modelid_A2
|| data.displayid == cInfo->Modelid_H1 || data.displayid == cInfo->Modelid_H2)
data.displayid = 0;
+ */
if(data.equipmentId > 0) // -1 no equipment, 0 use default
{
@@ -1172,6 +1174,8 @@ void ObjectMgr::LoadCreatures()
sLog.outErrorDb("Table `creature` have creature (GUID: %u Entry: %u) with `MovementType`=1 (random movement) but with `spawndist`=0, replace by idle movement type (0).",guid,data.id );
data.movementType = IDLE_MOTION_TYPE;
}
+ else if(cInfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)
+ data.movementType = IDLE_MOTION_TYPE;
}
else if(data.movementType == IDLE_MOTION_TYPE)
{
@@ -3165,9 +3169,13 @@ void ObjectMgr::LoadQuests()
"RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5,"
// 97 98 99 100 101 102 103 104 105 106 107
"RewHonorableKills, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt,"
- // 108 109 110 111 112 113 114 115 116 117
- "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4,"
- // 118 119
+ // 108 109 110 111 112 113 114 115
+ "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4,"
+ // 116 117 118 119 120 121
+ "IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4,"
+ // 122 123 124 125
+ "OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4,"
+ // 126 127
"StartScript, CompleteScript"
" FROM quest_template");
if(result == NULL)
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
index fd71d2088b3..caf37a6a61f 100644
--- a/src/game/Pet.cpp
+++ b/src/game/Pet.cpp
@@ -169,7 +169,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool
}
setPetType(PetType(fields[18].GetUInt8()));
- SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, owner->getFaction());
+ setFaction(owner->getFaction());
SetUInt32Value(UNIT_CREATED_BY_SPELL, summon_spell_id);
CreatureInfo const *cinfo = GetCreatureInfo();
@@ -185,7 +185,7 @@ bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool
SetDisplayId(fields[3].GetUInt32());
SetNativeDisplayId(fields[3].GetUInt32());
uint32 petlevel = fields[4].GetUInt32();
- SetUInt32Value(UNIT_NPC_FLAGS, 0);
+ SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
SetName(fields[8].GetString());
switch (getPetType())
@@ -736,7 +736,7 @@ bool Pet::CreateBaseAtCreature(Creature* creature)
SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, 0);
SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, objmgr.GetXPForLevel(creature->getLevel())*PET_XP_FACTOR);
- SetUInt32Value(UNIT_NPC_FLAGS, 0);
+ SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
if(CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family))
SetName(cFamily->Name[sWorld.GetDefaultDbcLocale()]);
@@ -1053,17 +1053,7 @@ void Pet::_LoadSpells()
{
Field *fields = result->Fetch();
- uint32 spell_id = fields[0].GetUInt32();
-
- // load only pet talents, other spell types auto-learned
- if(GetTalentSpellCost(spell_id)==0)
- {
- CharacterDatabase.PExecute("DELETE FROM pet_spell WHERE spell = '%u'",spell_id);
- sLog.outError("Table `pet_spell` have non-talent spell %u , spell removed from table for all pets.",spell_id);
- continue;
- }
-
- addSpell(spell_id, ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED,PETSPELL_TALENT);
+ addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED);
}
while( result->NextRow() );
@@ -1077,8 +1067,8 @@ void Pet::_SaveSpells()
{
++next;
- // save only talent spells for pets, other spells auto-applied
- if (itr->second.type != PETSPELL_TALENT)
+ // prevent saving family passives to DB
+ if (itr->second.type == PETSPELL_FAMILY)
continue;
switch(itr->second.state)
@@ -1255,9 +1245,6 @@ bool Pet::addSpell(uint32 spell_id,ActiveStates active /*= ACT_DECIDE*/, PetSpel
// talent: unlearn all other talent ranks (high and low)
if(TalentSpellPos const* talentPos = GetTalentSpellPos(spell_id))
{
- // propertly mark spell for allow save
- newspell.type = PETSPELL_TALENT;
-
if(TalentEntry const *talentInfo = sTalentStore.LookupEntry( talentPos->talent_id ))
{
for(int i=0; i < MAX_TALENT_RANK; ++i)
diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp
index d6ffb51f74d..87c667f1e77 100644
--- a/src/game/PetHandler.cpp
+++ b/src/game/PetHandler.cpp
@@ -627,7 +627,10 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket )
}
if (caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->GetGlobalCooldown() > 0)
+ {
+ caster->SendPetCastFail(spellid, SPELL_FAILED_NOT_READY);
return;
+ }
SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellid);
if(!spellInfo)
@@ -646,8 +649,8 @@ void WorldSession::HandlePetCastSpellOpcode( WorldPacket& recvPacket )
caster->clearUnitState(UNIT_STAT_FOLLOW);
- Spell *spell = new Spell(caster, spellInfo, false);
- spell->m_cast_count = cast_count; // probably pending spell cast
+ Spell *spell = new Spell(caster, spellInfo, spellid == 33395); // water elemental can cast freeze as triggered
+ spell->m_cast_count = spellid == 33395 ? 0 : cast_count; // probably pending spell cast
spell->m_targets = targets;
SpellCastResult result = spell->CheckPetCast(NULL);
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index cf66f09f11e..131d21910bf 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -684,7 +684,7 @@ bool Player::Create( uint32 guidlow, const std::string& name, uint8 race, uint8
InitTaxiNodesForLevel();
InitGlyphsForLevel();
InitTalentForLevel();
- InitPrimaryProffesions(); // to max set before any spell added
+ InitPrimaryProfessions(); // to max set before any spell added
// apply original stats mods before spell loading or item equipment that call before equip _RemoveStatsMods()
UpdateMaxHealth(); // Update max Health (for add bonus from stamina)
@@ -2971,10 +2971,10 @@ bool Player::addSpell(uint32 spell_id, bool active, bool learning, bool dependen
m_usedTalentCount += talentCost;
// update free primary prof.points (if any, can be none in case GM .learn prof. learning)
- if(uint32 freeProfs = GetFreePrimaryProffesionPoints())
+ if(uint32 freeProfs = GetFreePrimaryProfessionPoints())
{
if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id))
- SetFreePrimaryProffesions(freeProfs-1);
+ SetFreePrimaryProfessions(freeProfs-1);
}
// add dependent skills
@@ -3181,9 +3181,9 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool update_action_bar_
// update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning)
if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell_id))
{
- uint32 freeProfs = GetFreePrimaryProffesionPoints()+1;
+ uint32 freeProfs = GetFreePrimaryProfessionPoints()+1;
if(freeProfs <= sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL))
- SetFreePrimaryProffesions(freeProfs);
+ SetFreePrimaryProfessions(freeProfs);
}
// remove dependent skill
@@ -3830,7 +3830,7 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell
return TRAINER_SPELL_GREEN;
// check primary prof. limit
- if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProffesionPoints() == 0)
+ if(spellmgr.IsPrimaryProfessionFirstRankSpell(spell->Id) && GetFreePrimaryProfessionPoints() == 0)
return TRAINER_SPELL_GREEN_DISABLED;
return TRAINER_SPELL_GREEN;
@@ -4468,7 +4468,7 @@ void Player::RepopAtGraveyard()
AreaTableEntry const *zone = GetAreaEntryByAreaID(GetAreaId());
// Such zones are considered unreachable as a ghost and the player must be automatically revived
- if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport())
+ if(!isAlive() && zone && zone->flags & AREA_FLAG_NEED_FLY || GetTransport() || GetPositionZ() < -500.0f)
{
ResurrectPlayer(0.5f);
SpawnCorpseBones();
@@ -14257,7 +14257,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
return false;
}
- InitPrimaryProffesions(); // to max set before any spell loaded
+ InitPrimaryProfessions(); // to max set before any spell loaded
// init saved position, and fix it later if problematic
uint32 transGUID = fields[24].GetUInt32();
@@ -16664,8 +16664,6 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
void Player::StopCastingCharm()
{
- ExitVehicle();
-
Unit* charm = GetCharm();
if(!charm)
return;
@@ -16674,6 +16672,8 @@ void Player::StopCastingCharm()
{
if(((Creature*)charm)->HasSummonMask(SUMMON_MASK_PUPPET))
((Puppet*)charm)->UnSummon();
+ else if(((Creature*)charm)->isVehicle())
+ ExitVehicle();
}
if(GetCharmGUID())
{
@@ -16685,6 +16685,7 @@ void Player::StopCastingCharm()
if(GetCharmGUID())
{
sLog.outCrash("Player %s is not able to uncharm unit (Entry: %u, Type: %u)", GetName(), charm->GetEntry(), charm->GetTypeId());
+ assert(false);
}
}
@@ -16787,7 +16788,7 @@ void Player::PetSpellInitialize()
CharmInfo *charmInfo = pet->GetCharmInfo();
- WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
+ WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1);
data << uint64(pet->GetGUID());
data << uint32(pet->GetCreatureInfo()->family); // creature family (required for pet talents)
data << uint32(0);
@@ -16862,7 +16863,7 @@ void Player::PossessSpellInitialize()
return;
}
- WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+1);
+ WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+1);
data << uint64(charm->GetGUID());
data << uint32(0);
data << uint32(0);
@@ -16942,7 +16943,7 @@ void Player::CharmSpellInitialize()
}
}
- WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*10+1+4*addlist+1);
+ WorldPacket data(SMSG_PET_SPELLS, 8+4+4+4+4*MAX_UNIT_ACTION_BAR_INDEX+1+4*addlist+1);
data << uint64(charm->GetGUID());
data << uint32(0);
data << uint32(0);
@@ -18371,6 +18372,19 @@ bool Player::IsVisibleGloballyFor( Player* u ) const
return true;
}
+template<class T>
+inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target)
+{
+ s64.insert(target->GetGUID());
+}
+
+template<>
+inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target)
+{
+ if(!target->IsTransport())
+ s64.insert(target->GetGUID());
+}
+
void Player::UpdateVisibilityOf(WorldObject* target)
{
if(HaveAtClient(target))
@@ -18391,8 +18405,7 @@ void Player::UpdateVisibilityOf(WorldObject* target)
if(target->isVisibleForInState(this,false))
{
target->SendUpdateToPlayer(this);
- if(target->GetTypeId()!=TYPEID_GAMEOBJECT||!((GameObject*)target)->IsTransport())
- m_clientGUIDs.insert(target->GetGUID());
+ UpdateVisibilityOf_helper(m_clientGUIDs, target);
#ifdef TRINITY_DEBUG
if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0)
@@ -18420,23 +18433,8 @@ void Player::SendInitialVisiblePackets(Unit* target)
}
template<class T>
-inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, T* target)
-{
- s64.insert(target->GetGUID());
-}
-
-template<>
-inline void UpdateVisibilityOf_helper(std::set<uint64>& s64, GameObject* target)
-{
- if(!target->IsTransport())
- s64.insert(target->GetGUID());
-}
-
-template<class T>
void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObject*>& visibleNow)
{
- if(!target)
- return;
if(HaveAtClient(target))
{
if(!target->isVisibleForInState(this,true))
@@ -18450,7 +18448,7 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec
#endif
}
}
- else if(visibleNow.size() < 30)
+ else if(visibleNow.size() < 30 || target->GetTypeId() == TYPEID_UNIT && ((Creature*)target)->isVehicle())
{
if(target->isVisibleForInState(this,false))
{
@@ -18466,50 +18464,15 @@ void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObjec
}
}
-/*template<>
-void Player::UpdateVisibilityOf<Creature>(Creature* target, UpdateData& data, UpdateDataMapType& data_updates, std::set<WorldObject*>& visibleNow)
-{
- if(HaveAtClient(target))
- {
- if(!target->isVisibleForInState(this,true))
- {
- target->DestroyForPlayer(this);
- target->BuildOutOfRangeUpdateBlock(&data);
- m_clientGUIDs.erase(target->GetGUID());
-
- #ifdef TRINITY_DEBUG
- if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0)
- sLog.outDebug("Object %u (Type: %u, Entry: %u) is out of range for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target));
- #endif
- }
- }
- else
- {
- if(target->isVisibleForInState(this,false))
- {
- visibleNow.insert(target);
- target->BuildUpdate(data_updates);
- target->SendUpdateToPlayer(this);
- target->SendMonsterMoveWithSpeedToCurrentDestination(this);
- UpdateVisibilityOf_helper(m_clientGUIDs,target);
-
- #ifdef TRINITY_DEBUG
- if((sLog.getLogFilter() & LOG_FILTER_VISIBILITY_CHANGES)==0)
- sLog.outDebug("Object %u (Type: %u, Entry: %u) is visible now for player %u. Distance = %f",target->GetGUIDLow(),target->GetTypeId(),target->GetEntry(),GetGUIDLow(),GetDistance(target));
- #endif
- }
- }
-}*/
-
template void Player::UpdateVisibilityOf(Player* target, UpdateData& data, std::set<WorldObject*>& visibleNow);
template void Player::UpdateVisibilityOf(Creature* target, UpdateData& data, std::set<WorldObject*>& visibleNow);
template void Player::UpdateVisibilityOf(Corpse* target, UpdateData& data, std::set<WorldObject*>& visibleNow);
template void Player::UpdateVisibilityOf(GameObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow);
template void Player::UpdateVisibilityOf(DynamicObject* target, UpdateData& data, std::set<WorldObject*>& visibleNow);
-void Player::InitPrimaryProffesions()
+void Player::InitPrimaryProfessions()
{
- SetFreePrimaryProffesions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL));
+ SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL));
}
void Player::SendComboPoints()
diff --git a/src/game/Player.h b/src/game/Player.h
index 99b2e61b58f..79c5adc00c1 100644
--- a/src/game/Player.h
+++ b/src/game/Player.h
@@ -1381,9 +1381,9 @@ class TRINITY_DLL_SPEC Player : public Unit
void SetGlyph(uint8 slot, uint32 glyph) { SetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot, glyph); }
uint32 GetGlyph(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_GLYPHS_1 + slot); }
- uint32 GetFreePrimaryProffesionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); }
- void SetFreePrimaryProffesions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); }
- void InitPrimaryProffesions();
+ uint32 GetFreePrimaryProfessionPoints() const { return GetUInt32Value(PLAYER_CHARACTER_POINTS2); }
+ void SetFreePrimaryProfessions(uint16 profs) { SetUInt32Value(PLAYER_CHARACTER_POINTS2, profs); }
+ void InitPrimaryProfessions();
PlayerSpellMap const& GetSpellMap() const { return m_spells; }
PlayerSpellMap & GetSpellMap() { return m_spells; }
diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp
index e5782fcb8df..5d13a6a576a 100644
--- a/src/game/QueryHandler.cpp
+++ b/src/game/QueryHandler.cpp
@@ -288,21 +288,25 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/)
float x = corpse->GetPositionX();
float y = corpse->GetPositionY();
float z = corpse->GetPositionZ();
- int32 corpsemapid = _player->GetMapId();
+ int32 corpsemapid = mapid;
- if(Map *map = MapManager::Instance().FindMap(corpse->GetMapId(), corpse->GetInstanceId()))
+ // if corpse at different map
+ if(mapid != _player->GetMapId())
{
- if(map->IsDungeon())
+ // search entrance map for proper show entrance
+ if(MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapid))
{
- if(!map->GetEntrancePos(mapid, x, y))
- return;
-
- Map *entrance_map = MapManager::Instance().GetMap(mapid, _player);
- if(!entrance_map)
- return;
-
- z = entrance_map->GetHeight(x, y, MAX_HEIGHT);
- corpsemapid = corpse->GetMapId();
+ if(corpseMapEntry->IsDungeon() && corpseMapEntry->entrance_map >= 0)
+ {
+ // if corpse map have entrance
+ if(Map const* entranceMap = MapManager::Instance().GetBaseMap(corpseMapEntry->entrance_map))
+ {
+ mapid = corpseMapEntry->entrance_map;
+ x = corpseMapEntry->entrance_x;
+ y = corpseMapEntry->entrance_y;
+ z = entranceMap->GetHeight(x, y, MAX_HEIGHT);
+ }
+ }
}
}
diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp
index 8099bf40e88..013d6da1f0f 100644
--- a/src/game/QuestDef.cpp
+++ b/src/game/QuestDef.cpp
@@ -117,14 +117,20 @@ Quest::Quest(Field * questRecord)
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
DetailsEmote[i] = questRecord[108+i].GetUInt32();
- IncompleteEmote = questRecord[112].GetUInt32();
- CompleteEmote = questRecord[113].GetUInt32();
+ for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
+ DetailsEmoteDelay[i] = questRecord[112+i].GetUInt32();
+
+ IncompleteEmote = questRecord[116].GetUInt32();
+ CompleteEmote = questRecord[117].GetUInt32();
+
+ for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
+ OfferRewardEmote[i] = questRecord[118+i].GetInt32();
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
- OfferRewardEmote[i] = questRecord[114+i].GetInt32();
+ OfferRewardEmoteDelay[i] = questRecord[122+i].GetInt32();
- QuestStartScript = questRecord[118].GetUInt32();
- QuestCompleteScript = questRecord[119].GetUInt32();
+ QuestStartScript = questRecord[126].GetUInt32();
+ QuestCompleteScript = questRecord[127].GetUInt32();
QuestFlags |= SpecialFlags << 16;
diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h
index 242c10bf48f..f6cb2dd5b55 100644
--- a/src/game/QuestDef.h
+++ b/src/game/QuestDef.h
@@ -241,7 +241,9 @@ class Quest
uint32 RewRepFaction[QUEST_REPUTATIONS_COUNT];
int32 RewRepValue[QUEST_REPUTATIONS_COUNT];
uint32 DetailsEmote[QUEST_EMOTE_COUNT];
+ uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT];
uint32 OfferRewardEmote[QUEST_EMOTE_COUNT];
+ uint32 OfferRewardEmoteDelay[QUEST_EMOTE_COUNT];
uint32 GetReqItemsCount() const { return m_reqitemscount; }
uint32 GetReqCreatureOrGOcount() const { return m_reqCreatureOrGOcount; }
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 8e247230a40..a7e7212f9e9 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -4659,6 +4659,7 @@ SpellCastResult Spell::CheckCast(bool strict)
}
case SPELL_AURA_MOD_POSSESS:
case SPELL_AURA_MOD_CHARM:
+ //case SPELL_AURA_MOD_POSSESS_PET:
{
if(m_caster->GetPetGUID())
return SPELL_FAILED_ALREADY_HAVE_SUMMON;
@@ -4669,13 +4670,15 @@ SpellCastResult Spell::CheckCast(bool strict)
if(m_caster->GetCharmerGUID())
return SPELL_FAILED_CHARMED;
- if(!m_targets.getUnitTarget())
+ Unit *target = m_targets.getUnitTarget();
+ if(!target || target->GetTypeId() == TYPEID_UNIT
+ && ((Creature*)target)->isVehicle())
return SPELL_FAILED_BAD_IMPLICIT_TARGETS;
- if(m_targets.getUnitTarget()->GetCharmerGUID())
+ if(target->GetCharmerGUID())
return SPELL_FAILED_CHARMED;
- if(int32(m_targets.getUnitTarget()->getLevel()) > CalculateDamage(i,m_targets.getUnitTarget()))
+ if(int32(target->getLevel()) > CalculateDamage(i, target))
return SPELL_FAILED_HIGHLEVEL;
break;
@@ -4750,7 +4753,7 @@ SpellCastResult Spell::CheckPetCast(Unit* target)
if(!m_caster->isAlive())
return SPELL_FAILED_CASTER_DEAD;
- if(m_caster->IsNonMeleeSpellCasted(false)) //prevent spellcast interruption by another spellcast
+ if(m_caster->hasUnitState(UNIT_STAT_CASTING) && !m_IsTriggeredSpell) //prevent spellcast interruption by another spellcast
return SPELL_FAILED_SPELL_IN_PROGRESS;
if(m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo))
return SPELL_FAILED_AFFECTING_COMBAT;
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 7ac2ae5f25e..0d4606e6e84 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -345,7 +345,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
Aura::Aura(SpellEntry const* spellproto, uint32 effMask, int32 *currentBasePoints, Unit *target, WorldObject *source, Unit *caster, Item* castItem) :
m_caster_guid(0), m_castItemGuid(castItem?castItem->GetGUID():0), m_target(target),
-m_timeCla(1000), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE),
+m_timeCla(0), m_removeMode(AURA_REMOVE_BY_DEFAULT), m_AuraDRGroup(DIMINISHING_NONE),
m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_auraStateMask(0), m_updated(false), m_isRemoved(false)
{
assert(target);
@@ -356,6 +356,9 @@ m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_aura
m_spellProto = spellproto;
+ if(m_spellProto->manaPerSecond || m_spellProto->manaPerSecondPerLevel)
+ m_timeCla = 1000;
+
m_isPassive = IsPassiveSpell(GetId());
m_auraStateMask = 0;
@@ -456,10 +459,9 @@ Aura::~Aura()
AuraEffect::AuraEffect(Aura * parentAura, uint8 effIndex, int32 * currentBasePoints , Unit *caster, Item* castItem, WorldObject *source) :
m_parentAura(parentAura), m_spellmod(NULL), m_periodicTimer(0), m_isPeriodic(false), m_isAreaAura(false), m_isPersistent(false),
m_target(parentAura->GetTarget()), m_tickNumber(0)
+, m_spellProto(parentAura->GetSpellProto()), m_effIndex(effIndex), m_auraName(AuraType(m_spellProto->EffectApplyAuraName[m_effIndex]))
{
- m_spellProto = parentAura->GetSpellProto();
- m_effIndex = effIndex;
- m_auraName = AuraType(m_spellProto->EffectApplyAuraName[m_effIndex]);
+ assert(m_auraName < TOTAL_AURAS);
if(currentBasePoints)
m_currentBasePoints = *currentBasePoints;
@@ -533,12 +535,12 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre
case SPELL_EFFECT_APPLY_AREA_AURA_PARTY:
m_areaAuraType = AREA_AURA_PARTY;
if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem())
- m_auraName = SPELL_AURA_NONE;
+ *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE;
break;
case SPELL_EFFECT_APPLY_AREA_AURA_RAID:
m_areaAuraType = AREA_AURA_RAID;
if(m_target->GetTypeId() == TYPEID_UNIT && ((Creature*)m_target)->isTotem())
- m_auraName = SPELL_AURA_NONE;
+ *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE;
break;
case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND:
m_areaAuraType = AREA_AURA_FRIEND;
@@ -546,7 +548,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre
case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY:
m_areaAuraType = AREA_AURA_ENEMY;
if(m_target == caster_ptr)
- m_auraName = SPELL_AURA_NONE; // Do not do any effect on self
+ *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE; // Do not do any effect on self
break;
case SPELL_EFFECT_APPLY_AREA_AURA_PET:
m_areaAuraType = AREA_AURA_PET;
@@ -554,7 +556,7 @@ AreaAuraEffect::AreaAuraEffect(Aura * parentAura, uint32 effIndex, int32 * curre
case SPELL_EFFECT_APPLY_AREA_AURA_OWNER:
m_areaAuraType = AREA_AURA_OWNER;
if(m_target == caster_ptr)
- m_auraName = SPELL_AURA_NONE;
+ *const_cast<AuraType*>(&m_auraName) = SPELL_AURA_NONE;
break;
default:
sLog.outError("Wrong spell effect in AreaAura constructor");
@@ -628,15 +630,15 @@ void Aura::Update(uint32 diff)
m_duration = 0;
// all spells with manaPerSecond/manaPerSecondPerLevel have aura in effect 0
- if(m_timeCla > 0)
- m_timeCla -= diff;
- if(m_timeCla <= 0)
+ if(m_timeCla)
{
- if(Unit* caster = GetCaster())
+ if(m_timeCla > diff)
+ m_timeCla -= diff;
+ else if(Unit* caster = GetCaster())
{
if(int32 manaPerSecond = m_spellProto->manaPerSecond + m_spellProto->manaPerSecondPerLevel * caster->getLevel())
{
- m_timeCla = 1000;
+ m_timeCla += 1000 - diff;
Powers powertype = Powers(m_spellProto->powerType);
if(powertype == POWER_HEALTH)
@@ -673,13 +675,14 @@ void AuraEffect::Update(uint32 diff)
{
if (m_isPeriodic && (GetParentAura()->GetAuraDuration() >=0 || GetParentAura()->IsPassive() || GetParentAura()->IsPermanent()))
{
- m_periodicTimer -= diff;
- if(m_periodicTimer <= 0) // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N
+ if(m_periodicTimer > diff)
+ m_periodicTimer -= diff;
+ else // tick also at m_periodicTimer==0 to prevent lost last tick in case max m_duration == (max m_periodicTimer)*N
{
++m_tickNumber;
// update before applying (aura can be removed in TriggerSpell or PeriodicTick calls)
- m_periodicTimer += m_amplitude;
+ m_periodicTimer += m_amplitude - diff;
if(!m_target->hasUnitState(UNIT_STAT_ISOLATED))
PeriodicTick();
@@ -856,8 +859,7 @@ void AuraEffect::ApplyModifier(bool apply, bool Real, bool changeAmount)
if (GetParentAura()->IsRemoved())
return;
- if(m_auraName<TOTAL_AURAS)
- (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount);
+ (*this.*AuraHandler [m_auraName])(apply,Real, changeAmount);
}
void AuraEffect::RecalculateAmount(bool applied)
@@ -3529,7 +3531,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/
if( apply )
{
m_target->SetCharmerGUID(GetCasterGUID());
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction());
+ m_target->setFaction(caster->getFaction());
caster->SetCharm(m_target);
@@ -3571,7 +3573,7 @@ void AuraEffect::HandleAuraModScale(bool apply, bool Real, bool /*changeAmount*/
else if(m_target->GetTypeId() == TYPEID_UNIT)
{
CreatureInfo const *cinfo = ((Creature*)m_target)->GetCreatureInfo();
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A);
+ m_target->setFaction(cinfo->faction_A);
}
caster->SetCharm(NULL);
@@ -3664,8 +3666,8 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang
if( apply )
{
m_target->SetCharmerGUID(GetCasterGUID());
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,caster->getFaction());
- m_target->CastStop(m_target==caster ? GetId() : 0);
+ m_target->setFaction(caster->getFaction());
+ m_target->CastStop(m_target == caster ? GetId() : 0);
caster->SetCharm(m_target);
m_target->CombatStop();
@@ -3713,12 +3715,12 @@ void AuraEffect::HandleAuraModPetTalentsPoints(bool Apply, bool Real, bool chang
if(((Creature*)m_target)->isPet())
{
if(Unit* owner = m_target->GetOwner())
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,owner->getFaction());
+ m_target->setFaction(owner->getFaction());
else if(cinfo)
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A);
+ m_target->setFaction(cinfo->faction_A);
}
else if(cinfo) // normal creature
- m_target->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction_A);
+ m_target->setFaction(cinfo->faction_A);
// restore UNIT_FIELD_BYTES_0
if(cinfo && caster->GetTypeId() == TYPEID_PLAYER && caster->getClass() == CLASS_WARLOCK && cinfo->type == CREATURE_TYPE_DEMON)
@@ -4979,6 +4981,10 @@ void AuraEffect::HandleAuraModIncreaseHealth(bool apply, bool Real, bool changeA
{
if(apply)
{
+ // Vampiric Blood
+ if(GetSpellProto()->Id == 55233)
+ m_amount = m_target->GetMaxHealth() * m_amount / 100;
+
m_target->HandleStatModifier(UNIT_MOD_HEALTH, TOTAL_VALUE, float(m_amount), apply);
m_target->ModifyHealth(m_amount);
}
@@ -6626,20 +6632,53 @@ void AuraEffect::PeriodicDummyTick()
{
switch (spell->Id)
{
- // Killing Spree
-// case 51690: break;
- // Overkill
- case 58428:
- if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH))
- m_target->RemoveAurasDueToSpell(58427);
- break;
// Master of Subtlety
case 31666:
if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH))
m_target->RemoveAurasDueToSpell(31665);
break;
- default:
+ // Killing Spree
+ case 51690:
+ {
+ std::list<Unit*> targets;
+ {
+ // eff_radius ==0
+ float radius = GetSpellMaxRange(spell, false);
+
+ CellPair p(MaNGOS::ComputeCellPair(caster->GetPositionX(),caster->GetPositionY()));
+ Cell cell(p);
+ cell.data.Part.reserved = ALL_DISTRICT;
+
+ MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck u_check(caster, caster, radius);
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck> checker(caster,targets, u_check);
+
+ TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, GridTypeMapContainer > grid_object_checker(checker);
+ TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyVisibleUnitInObjectRangeCheck>, WorldTypeMapContainer > world_object_checker(checker);
+
+ CellLock<GridReadGuard> cell_lock(cell, p);
+
+ cell_lock->Visit(cell_lock, grid_object_checker, *caster->GetMap());
+ cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap());
+ }
+
+ if(targets.empty())
+ return;
+
+ std::list<Unit*>::const_iterator itr = targets.begin();
+ std::advance(itr, rand()%targets.size());
+ Unit* target = *itr;
+
+ caster->CastSpell(target, 57840, true);
+ caster->CastSpell(target, 57841, true);
+ return;
+ }
+ // Overkill
+ case 58428:
+ if (!m_target->HasAuraType(SPELL_AURA_MOD_STEALTH))
+ m_target->RemoveAurasDueToSpell(58427);
break;
+// default:
+// break;
}
break;
}
@@ -6814,7 +6853,7 @@ void AuraEffect::HandleAuraControlVehicle(bool apply, bool Real, bool /*changeAm
if(!caster || caster == m_target)
return;
- Vehicle *vehicle = dynamic_cast<Vehicle*>(m_target);
+ Vehicle * const vehicle = dynamic_cast<Vehicle * const>(m_target);
if (apply)
{
@@ -6904,10 +6943,10 @@ void AuraEffect::HandleModPossess(bool apply, bool Real, bool /*changeAmount*/)
if(m_target->getLevel() > m_amount)
return;
- m_target->SetCharmedOrPossessedBy(caster, true);
+ m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS);
}
else
- m_target->RemoveCharmedOrPossessedBy(caster);
+ m_target->RemoveCharmedBy(caster);
}
void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount*/)
@@ -6924,11 +6963,11 @@ void AuraEffect::HandleModPossessPet(bool apply, bool Real, bool /*changeAmount*
if(caster->GetGuardianPet() != m_target)
return;
- m_target->SetCharmedOrPossessedBy(caster, true);
+ m_target->SetCharmedBy(caster, CHARM_TYPE_POSSESS);
}
else
{
- m_target->RemoveCharmedOrPossessedBy(caster);
+ m_target->RemoveCharmedBy(caster);
// Reinitialize the pet bar and make the pet come back to the owner
((Player*)caster)->PetSpellInitialize();
@@ -6952,10 +6991,10 @@ void AuraEffect::HandleModCharm(bool apply, bool Real, bool /*changeAmount*/)
if(int32(m_target->getLevel()) > m_amount)
return;
- m_target->SetCharmedOrPossessedBy(caster, false);
+ m_target->SetCharmedBy(caster, CHARM_TYPE_CHARM);
}
else
- m_target->RemoveCharmedOrPossessedBy(caster);
+ m_target->RemoveCharmedBy(caster);
}
void AuraEffect::HandlePhase(bool apply, bool Real, bool /*changeAmount*/)
diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h
index 20d27e915c1..579794e3da2 100644
--- a/src/game/SpellAuras.h
+++ b/src/game/SpellAuras.h
@@ -377,11 +377,11 @@ class TRINITY_DLL_SPEC AuraEffect
Unit * const m_target;
uint64 m_sourceGUID; // Spell::m_caster/trap? for normal aura, totem/paladin for areaaura, dynobj for persistent aura
- SpellEntry const *m_spellProto;
uint32 m_tickNumber;
- uint8 m_effIndex;
- AuraType m_auraName;
+ const SpellEntry * const m_spellProto;
+ const uint8 m_effIndex;
+ const AuraType m_auraName;
int32 m_currentBasePoints;
int32 m_amount;
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index a6d5cb2ce74..4ec6a30ae3d 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -3295,7 +3295,8 @@ void Spell::EffectSummonType(uint32 i)
return;
//vehicle->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_caster->GetGUID());
- vehicle->setFaction(m_caster->getFaction());
+ if(m_originalCaster)
+ vehicle->setFaction(m_originalCaster->getFaction());
vehicle->SetUInt32Value(UNIT_CREATED_BY_SPELL, m_spellInfo->Id);
break;
}
@@ -3963,7 +3964,8 @@ void Spell::EffectTameCreature(uint32 /*i*/)
finish();
Pet* pet = m_caster->CreateTamedPetFrom(creatureTarget,m_spellInfo->Id);
- if(!pet) return;
+ if(!pet) // in versy specific state like near world end/etc.
+ return;
// kill original creature
creatureTarget->setDeathState(JUST_DIED);
@@ -4891,6 +4893,10 @@ void Spell::EffectScriptEffect(uint32 effIndex)
if(unitTarget)
m_caster->CastSpell(unitTarget, 52125, false);
return;
+ case 52479: // Gift of the Harvester
+ if(unitTarget && m_originalCaster)
+ m_originalCaster->CastSpell(unitTarget, urand(0, 1) ? damage : 52505, true);
+ return;
// Death Gate
case 52751:
{
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index da571c83975..99c113a5eb5 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -3370,6 +3370,7 @@ void SpellMgr::LoadSpellCustomAttr()
case 39365: // Thundering Storm
case 41071: // Raise Dead (HACK)
case 52124: // Sky Darkener Assault
+ case 52479: // Gift of the Harvester
spellInfo->MaxAffectedTargets = 1;
break;
case 41376: // Spite
diff --git a/src/game/TemporarySummon.cpp b/src/game/TemporarySummon.cpp
index 2be94e29c38..d4c4d54fb1d 100644
--- a/src/game/TemporarySummon.cpp
+++ b/src/game/TemporarySummon.cpp
@@ -332,7 +332,7 @@ void Puppet::InitStats(uint32 duration)
void Puppet::InitSummon()
{
Minion::InitSummon();
- SetCharmedOrPossessedBy(m_owner, true);
+ SetCharmedBy(m_owner, CHARM_TYPE_POSSESS);
}
void Puppet::Update(uint32 time)
@@ -351,6 +351,6 @@ void Puppet::RemoveFromWorld()
if(!IsInWorld())
return;
- RemoveCharmedOrPossessedBy(NULL);
+ RemoveCharmedBy(NULL);
Minion::RemoveFromWorld();
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 9bef10368d8..914842ffab8 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -2095,7 +2095,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
// This, if I'm not mistaken, shows that we get back ~2% of the absorbed damage as runic power.
int32 absorbed = RemainingDamage * currentAbsorb / 100;
int32 regen = absorbed * 2 / 10;
- pVictim->CastCustomSpell(pVictim, 49088, &regen, 0, 0, true, 0, (*i));
+ pVictim->CastCustomSpell(pVictim, 49088, &regen, NULL, NULL, true, NULL, *i);
RemainingDamage -= absorbed;
continue;
}
@@ -3305,12 +3305,11 @@ uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target)
void Unit::_DeleteAuras()
{
- for (AuraList::iterator i = m_removedAuras.begin(); i != m_removedAuras.end();i = m_removedAuras.begin())
+ while(!m_removedAuras.empty())
{
- Aura * Aur = *i;
- sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow());
+ delete m_removedAuras.front();
m_removedAuras.pop_front();
- delete (Aur);
+// sLog.outDebug("Aura %d is deleted from unit %d", Aur->GetId(), GetGUIDLow());
}
}
@@ -3320,7 +3319,7 @@ void Unit::_UpdateSpells( uint32 time )
_UpdateAutoRepeatSpell();
// remove finished spells from current pointers
- for (uint32 i = 0; i < CURRENT_MAX_SPELL; i++)
+ for (uint32 i = 0; i < CURRENT_MAX_SPELL; ++i)
{
if (m_currentSpells[i] && m_currentSpells[i]->getState() == SPELL_STATE_FINISHED)
{
@@ -3371,20 +3370,18 @@ void Unit::_UpdateSpells( uint32 time )
if(!m_gameObj.empty())
{
- GameObjectList::iterator ite1, dnext1;
- for (ite1 = m_gameObj.begin(); ite1 != m_gameObj.end(); ite1 = dnext1)
+ GameObjectList::iterator itr;
+ for(itr = m_gameObj.begin(); itr != m_gameObj.end();)
{
- dnext1 = ite1;
- //(*i)->Update( difftime );
- if( !(*ite1)->isSpawned() )
+ if( !(*itr)->isSpawned() )
{
- (*ite1)->SetOwnerGUID(0);
- (*ite1)->SetRespawnTime(0);
- (*ite1)->Delete();
- dnext1 = m_gameObj.erase(ite1);
+ (*itr)->SetOwnerGUID(0);
+ (*itr)->SetRespawnTime(0);
+ (*itr)->Delete();
+ m_gameObj.erase(itr++);
}
else
- ++dnext1;
+ ++itr;
}
}
}
@@ -4099,7 +4096,6 @@ void Unit::RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId)
void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except)
{
- if (auraType >= TOTAL_AURAS) return;
for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();)
{
Aura * aur = (*iter)->GetParentAura();
@@ -4116,7 +4112,6 @@ void Unit::RemoveAurasByType(AuraType auraType, uint64 casterGUID, Aura * except
void Unit::RemoveAurasByTypeWithDispel(AuraType auraType, Spell * spell)
{
- if (auraType >= TOTAL_AURAS) return;
std::queue < std::pair < uint32, uint64 > > remove_list;
for (AuraEffectList::iterator iter = m_modAuras[auraType].begin(); iter != m_modAuras[auraType].end();++iter)
@@ -5498,8 +5493,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
target = GetGuardianPet();
if (!target)
return false;
- triggered_spell_id = 54181;
basepoints0 = damage * 15 / 100;
+ triggered_spell_id = 54181;
break;
}
switch(dummySpell->Id)
@@ -6061,13 +6056,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
int32 holy = caster->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_HOLY) +
caster->SpellBaseDamageBonusForVictim(SPELL_SCHOOL_MASK_HOLY, this);
basepoints0 = int32(ap*0.10f + 0.10f*holy);
- pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, 0, 0, true, 0, triggeredByAura);
+ pVictim->CastCustomSpell(pVictim, 20267, &basepoints0, NULL, NULL, true, NULL, triggeredByAura);
return true;
}
// Judgement of Wisdom
case 20186:
{
- pVictim->CastSpell(pVictim, 20268, true, NULL, triggeredByAura);
+ if (pVictim->getPowerType() == POWER_MANA)
+ {
+ // 2% of maximum mana
+ basepoints0 = int32(pVictim->GetMaxPower(POWER_MANA) * 2 / 100);
+ pVictim->CastCustomSpell(pVictim, 20268, &basepoints0, NULL, NULL, true, NULL, triggeredByAura);
+ }
return true;
}
// Holy Power (Redemption Armor set)
@@ -6101,6 +6101,29 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
}
break;
}
+ // Blessing of Sanctuary
+ case 20911:
+ {
+ if (target->GetTypeId() != TYPEID_PLAYER)
+ return false;
+
+ target = this;
+ switch (target->getPowerType())
+ {
+ case POWER_MANA:
+ triggered_spell_id = 57319;
+ break;
+ case POWER_RAGE:
+ triggered_spell_id = 57320;
+ break;
+ case POWER_RUNIC_POWER:
+ triggered_spell_id = 57321;
+ break;
+ default:
+ return false;
+ }
+ break;
+ }
// Seal of Vengeance (damage calc on apply aura)
case 31801:
{
@@ -6203,7 +6226,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
if (procSpell->Effect[i] == SPELL_EFFECT_ENERGIZE)
{
int32 mana = procSpell->EffectBasePoints[i];
- CastCustomSpell(this, 54986, 0, &mana, 0, true, castItem, triggeredByAura);
+ CastCustomSpell(this, 54986, NULL, &mana, NULL, true, castItem, triggeredByAura);
break;
}
return true;
@@ -7322,7 +7345,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
case SPELL_SCHOOL_NATURE: trigger_spell_id = 50488; break;
case SPELL_SCHOOL_FROST: trigger_spell_id = 50485; break;
case SPELL_SCHOOL_SHADOW: trigger_spell_id = 50489; break;
- case SPELL_SCHOOL_ARCANE: trigger_spell_id = 54373; break;
+ case SPELL_SCHOOL_ARCANE: trigger_spell_id = 50486; break;
default:
return false;
}
@@ -7649,7 +7672,7 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, uint32 damage, AuraE
return false;
int32 cost = procSpell->manaCost + procSpell->ManaCostPercentage * GetCreateMana() / 100;
int32 basepoints0 = cost * triggeredByAura->GetAmount()/100;
- CastCustomSpell(this, 47762, &basepoints0, 0, 0, true, 0, triggeredByAura);
+ CastCustomSpell(this, 47762, &basepoints0, NULL, NULL, true, NULL, triggeredByAura);
return true;
}
// Rapture
@@ -11655,7 +11678,10 @@ void Unit::RemoveFromWorld()
ExitVehicle();
if(GetCharmerGUID())
+ {
sLog.outCrash("Unit %u has charmer guid when removed from world", GetEntry());
+ assert(false);
+ }
WorldObject::RemoveFromWorld();
}
@@ -11701,7 +11727,7 @@ void Unit::UpdateCharmAI()
if(isCharmed())
{
i_disabledAI = i_AI;
- if(isPossessed())
+ if(isPossessed() || ((Creature*)this)->isVehicle())
i_AI = new PossessedAI((Creature*)this);
else
i_AI = new PetAI((Creature*)this);
@@ -11996,10 +12022,10 @@ typedef std::list< ProcTriggeredData > ProcTriggeredList;
// for example SPELL_AURA_MECHANIC_IMMUNITY - need check for mechanic
bool InitTriggerAuraData()
{
- for (int i=0;i<TOTAL_AURAS;i++)
+ for (int i = 0; i < TOTAL_AURAS; ++i)
{
- isTriggerAura[i]=false;
- isNonTriggerAura[i] = false;
+ isTriggerAura[i]=false;
+ isNonTriggerAura[i] = false;
}
isTriggerAura[SPELL_AURA_DUMMY] = true;
isTriggerAura[SPELL_AURA_MOD_CONFUSE] = true;
@@ -12950,7 +12976,7 @@ Pet* Unit::CreateTamedPetFrom(Creature* creatureTarget,uint32 spell_id)
}
pet->SetCreatorGUID(GetGUID());
- pet->SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE, getFaction());
+ pet->setFaction(getFaction());
pet->SetUInt32Value(UNIT_CREATED_BY_SPELL, spell_id);
if(GetTypeId()==TYPEID_PLAYER)
@@ -13524,12 +13550,13 @@ void Unit::SetConfused(bool apply)
((Player*)this)->SetClientControl(this, !apply);
}
-void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess)
+void Unit::SetCharmedBy(Unit* charmer, CharmType type)
{
if(!charmer)
return;
- assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER);
+ assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER);
+ assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle());
if(this == charmer)
return;
@@ -13580,50 +13607,57 @@ void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess)
}
// Pets already have a properly initialized CharmInfo, don't overwrite it.
- if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT
- && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN))
+ if(type != CHARM_TYPE_VEHICLE && !GetCharmInfo())
{
CharmInfo *charmInfo = InitCharmInfo();
- if(possess)
+ if(type == CHARM_TYPE_POSSESS)
charmInfo->InitPossessCreateSpells();
else
charmInfo->InitCharmCreateSpells();
}
- //Set possessed
- if(possess)
- {
- addUnitState(UNIT_STAT_POSSESSED);
- SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24);
- ((Player*)charmer)->SetClientControl(this, 1);
- ((Player*)charmer)->SetViewpoint(this, true);
- charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- }
- // Charm demon
- else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK)
+ if(charmer->GetTypeId() == TYPEID_PLAYER)
{
- CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo();
- if(cinfo && cinfo->type == CREATURE_TYPE_DEMON)
+ switch(type)
{
- //to prevent client crash
- //SetFlag(UNIT_FIELD_BYTES_0, 2048);
+ case CHARM_TYPE_VEHICLE:
+ ((Player*)charmer)->SetViewpoint(this, true);
+ ((Player*)charmer)->VehicleSpellInitialize();
+ break;
+ case CHARM_TYPE_POSSESS:
+ addUnitState(UNIT_STAT_POSSESSED);
+ SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24);
+ charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
+ ((Player*)charmer)->SetClientControl(this, 1);
+ ((Player*)charmer)->SetViewpoint(this, true);
+ ((Player*)charmer)->PossessSpellInitialize();
+ break;
+ case CHARM_TYPE_CHARM:
+ if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK)
+ {
+ CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo();
+ if(cinfo && cinfo->type == CREATURE_TYPE_DEMON)
+ {
+ //to prevent client crash
+ //SetFlag(UNIT_FIELD_BYTES_0, 2048);
- //just to enable stat window
- if(GetCharmInfo())
- GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true);
+ //just to enable stat window
+ if(GetCharmInfo())
+ GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true);
- //if charmed two demons the same session, the 2nd gets the 1st one's name
- SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL));
+ //if charmed two demons the same session, the 2nd gets the 1st one's name
+ SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL));
+ }
+ }
+ ((Player*)charmer)->CharmSpellInitialize();
+ break;
+ default:
+ break;
}
- }
-
- if(possess)
- ((Player*)charmer)->PossessSpellInitialize();
- else if(charmer->GetTypeId() == TYPEID_PLAYER)
- ((Player*)charmer)->CharmSpellInitialize();
+ }
}
-void Unit::RemoveCharmedOrPossessedBy(Unit *charmer)
+void Unit::RemoveCharmedBy(Unit *charmer)
{
if(!isCharmed())
return;
@@ -13633,7 +13667,13 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer)
else if(charmer != GetCharmer()) // one aura overrides another?
return;
- bool possess = hasUnitState(UNIT_STAT_POSSESSED);
+ CharmType type;
+ if(hasUnitState(UNIT_STAT_POSSESSED))
+ type = CHARM_TYPE_POSSESS;
+ else if(this == charmer->m_Vehicle)
+ type = CHARM_TYPE_VEHICLE;
+ else
+ type = CHARM_TYPE_CHARM;
CastStop();
CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells)
@@ -13642,7 +13682,7 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer)
RestoreFaction();
GetMotionMaster()->InitDefault();
- if(possess)
+ if(type == CHARM_TYPE_POSSESS)
{
clearUnitState(UNIT_STAT_POSSESSED);
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24);
@@ -13650,20 +13690,18 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer)
if(GetTypeId() == TYPEID_UNIT)
{
- if(!((Creature*)this)->isPet())
- RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
-
((Creature*)this)->AI()->OnCharmed(false);
- if(isAlive() && ((Creature*)this)->IsAIEnabled)
+ if(isAlive() && charmer && !IsFriendlyTo(charmer))
+ ((Creature*)this)->AddThreat(charmer, 10000.0f);
+ /*if(isAlive() && ((Creature*)this)->IsAIEnabled)
{
if(charmer && !IsFriendlyTo(charmer))
{
- ((Creature*)this)->AddThreat(charmer, 10000.0f);
((Creature*)this)->AI()->AttackStart(charmer);
}
else
((Creature*)this)->AI()->EnterEvadeMode();
- }
+ }*/
}
else
((Player*)this)->SetClientControl(this, 1);
@@ -13672,42 +13710,46 @@ void Unit::RemoveCharmedOrPossessedBy(Unit *charmer)
if(!charmer)
return;
- assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER);
+ assert(type != CHARM_TYPE_POSSESS || charmer->GetTypeId() == TYPEID_PLAYER);
+ assert(type != CHARM_TYPE_VEHICLE || GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isVehicle());
charmer->SetCharm(this, false);
- if(possess)
- {
- ((Player*)charmer)->SetClientControl(charmer, 1);
- ((Player*)charmer)->SetViewpoint(this, false);
- charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
- }
- // restore UNIT_FIELD_BYTES_0
- else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK)
+
+ if(charmer->GetTypeId() == TYPEID_PLAYER)
{
- CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo();
- if(cinfo && cinfo->type == CREATURE_TYPE_DEMON)
+ switch(type)
{
- if(GetCharmInfo())
- GetCharmInfo()->SetPetNumber(0, true);
- else
- sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId());
+ case CHARM_TYPE_VEHICLE:
+ ((Player*)charmer)->SetViewpoint(this, false);
+ break;
+ case CHARM_TYPE_POSSESS:
+ ((Player*)charmer)->SetClientControl(charmer, 1);
+ ((Player*)charmer)->SetViewpoint(this, false);
+ charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
+ break;
+ case CHARM_TYPE_CHARM:
+ if(GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK)
+ {
+ CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo();
+ if(cinfo && cinfo->type == CREATURE_TYPE_DEMON)
+ {
+ if(GetCharmInfo())
+ GetCharmInfo()->SetPetNumber(0, true);
+ else
+ sLog.outError("Aura::HandleModCharm: target="UI64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId());
+ }
+ }
+ break;
+ default:
+ break;
}
}
//a guardian should always have charminfo
- if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT
- && !((Creature*)this)->HasSummonMask(SUMMON_MASK_GUARDIAN))
- {
+ if(charmer->GetTypeId() == TYPEID_PLAYER && this != charmer->GetFirstControlled())
+ ((Player*)charmer)->SendRemoveControlBar();
+ else if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT && !((Creature*)this)->isGuardian())
DeleteCharmInfo();
- }
-
- if(possess || charmer->GetTypeId() == TYPEID_PLAYER)
- {
- // Remove pet spell action bar
- WorldPacket data(SMSG_PET_SPELLS, 8);
- data << uint64(0);
- ((Player*)charmer)->GetSession()->SendPacket(&data);
- }
}
void Unit::RestoreFaction()
@@ -14000,7 +14042,7 @@ void Unit::SetPhaseMask(uint32 newPhaseMask, bool update)
return;
for(ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
- if((*itr)->GetOwnerGUID() == GetGUID())
+ if((*itr)->GetTypeId() == TYPEID_UNIT)
(*itr)->SetPhaseMask(newPhaseMask,true);
for(int8 i = 0; i < MAX_SUMMON_SLOT; ++i)
diff --git a/src/game/Unit.h b/src/game/Unit.h
index d788a9ad4f6..ea934356842 100644
--- a/src/game/Unit.h
+++ b/src/game/Unit.h
@@ -885,6 +885,13 @@ struct CharmSpellEntry
typedef std::list<Player*> SharedVisionList;
+enum CharmType
+{
+ CHARM_TYPE_CHARM,
+ CHARM_TYPE_POSSESS,
+ CHARM_TYPE_VEHICLE,
+};
+
enum ActionBarIndex
{
ACTION_BAR_INDEX_START = 0,
@@ -1340,8 +1347,8 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
void SetMinion(Minion *minion, bool apply);
void SetCharm(Unit* target, bool apply);
Unit* GetNextRandomRaidMemberOrPet(float radius);
- void SetCharmedOrPossessedBy(Unit* charmer, bool possess);
- void RemoveCharmedOrPossessedBy(Unit* charmer);
+ void SetCharmedBy(Unit* charmer, CharmType type);
+ void RemoveCharmedBy(Unit* charmer);
void RestoreFaction();
ControlList m_Controlled;
diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp
index aaf97b3e413..3efe735a5b5 100644
--- a/src/game/Vehicle.cpp
+++ b/src/game/Vehicle.cpp
@@ -25,6 +25,8 @@
#include "WorldPacket.h"
#include "Chat.h"
+#include "CreatureAI.h"
+#include "ZoneScript.h"
Vehicle::Vehicle() : Creature(), m_vehicleInfo(NULL), m_usableSeatNum(0)
{
@@ -40,6 +42,8 @@ void Vehicle::AddToWorld()
{
if(!IsInWorld())
{
+ if(m_zoneScript)
+ m_zoneScript->OnCreatureCreate(this, true);
ObjectAccessor::Instance().AddObject(this);
Unit::AddToWorld();
AIM_Initialize();
@@ -57,6 +61,8 @@ void Vehicle::RemoveFromWorld()
{
if(IsInWorld())
{
+ if(m_zoneScript)
+ m_zoneScript->OnCreatureCreate(this, false);
RemoveAllPassengers();
///- Don't call the function for Creature, normal mobs + totems go in a different storage
Unit::RemoveFromWorld();
@@ -238,18 +244,15 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId)
GetPositionZ() + unit->m_movementInfo.t_z,
GetOrientation());
+ unit->GetMotionMaster()->MoveIdle(MOTION_SLOT_IDLE);
+
WorldPacket data;
if(unit->GetTypeId() == TYPEID_PLAYER)
{
//ChatHandler(player).PSendSysMessage("Enter seat %u %u", veSeat->m_ID, seat->first);
if(seat->first == 0 && seat->second.seatInfo->IsUsable()) // not right
- {
- setFaction(unit->getFaction());
- ((Player*)unit)->SetCharm(this, true);
- ((Player*)unit)->SetViewpoint(this, true);
- ((Player*)unit)->VehicleSpellInitialize();
- }
+ SetCharmedBy(unit, CHARM_TYPE_VEHICLE);
((Player*)unit)->BuildTeleportAckMsg(&data, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ(), unit->GetOrientation());
((Player*)unit)->GetSession()->SendPacket(&data);
@@ -289,12 +292,7 @@ void Vehicle::RemovePassenger(Unit *unit)
//SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
if(unit->GetTypeId() == TYPEID_PLAYER && seat->first == 0 && seat->second.seatInfo->IsUsable())
- {
- RestoreFaction();
- ((Player*)unit)->SetCharm(this, false);
- ((Player*)unit)->SetViewpoint(this, false);
- ((Player*)unit)->SendRemoveControlBar();
- }
+ RemoveCharmedBy(unit);
// only for flyable vehicles?
//CastSpell(this, 45472, true); // Parachute
diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp
index 51c5759bf13..782ec4ab537 100644
--- a/src/game/Wintergrasp.cpp
+++ b/src/game/Wintergrasp.cpp
@@ -127,7 +127,7 @@ bool OPvPWintergrasp::SetupOutdoorPvP()
LoadTeamPair(m_creEntryPair, CreatureEntryPair);
m_wartime = false;
- m_timer = 600000;
+ m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS;
return true;
}
@@ -155,33 +155,59 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId)
}
}
-void OPvPWintergrasp::ChangeDefender()
-{
- m_defender = OTHER_TEAM(m_defender);
- if(m_defender == TEAM_ALLIANCE)
- sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!");
- else
- sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!");
- UpdateAllWorldObject();
-
- m_wartime = false;
- m_timer = 600000; // for test, should be 2 hour 30 min
-}
-
-uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, uint32 entry)
+uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, const CreatureData *data)
{
if(m_defender == TEAM_ALLIANCE)
{
- TeamPairMap::const_iterator itr = m_creEntryPair.find(entry);
+ TeamPairMap::const_iterator itr = m_creEntryPair.find(data->id);
if(itr != m_creEntryPair.end())
+ {
+ const_cast<CreatureData*>(data)->displayid = 0;
return itr->second;
+ }
}
- return entry;
+ return data->id;
}
void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
{
- if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end())
+ if(creature->isVehicle())
+ {
+ TeamId team;
+ if(creature->getFaction() == WintergraspFaction[TEAM_ALLIANCE])
+ team = TEAM_ALLIANCE;
+ else if(creature->getFaction() == WintergraspFaction[TEAM_HORDE])
+ team = TEAM_HORDE;
+ else
+ return;
+
+ switch(creature->GetEntry())
+ {
+ case 27881:
+ case 28094:
+ case 28312:
+ case 32627:
+ //case 28366: tower
+ if(add)
+ {
+ m_vehicles[team].insert((Vehicle*)creature);
+ if(m_tenacityStack > 0)
+ {
+ if(team == TEAM_ALLIANCE)
+ creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, m_tenacityStack);
+ }
+ else if(m_tenacityStack < 0)
+ {
+ if(team == TEAM_HORDE)
+ creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, -m_tenacityStack);
+ }
+ }
+ else
+ m_vehicles[team].erase((Vehicle*)creature);
+ break;
+ }
+ }
+ else if(m_creEntryPair.find(creature->GetEntry()) != m_creEntryPair.end())
{
if(add) m_creatures.insert(creature);
else m_creatures.erase(creature);
@@ -304,7 +330,7 @@ bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go)
void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
{
- if(!plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL)
+ if(m_wartime && !plr->HasAura(SPELL_RECRUIT) && !plr->HasAura(SPELL_CORPORAL)
&& !plr->HasAura(SPELL_LIEUTENANT))
plr->CastSpell(plr, SPELL_RECRUIT, true);
@@ -377,12 +403,18 @@ void OPvPWintergrasp::UpdateTenacityStack()
if(m_tenacityStack > 0)
{
if(newStack <= 0)
+ {
TeamCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY);
+ VehicleCastSpell(TEAM_ALLIANCE, -SPELL_TENACITY_VEHICLE);
+ }
}
else if(m_tenacityStack < 0)
{
if(newStack >= 0)
+ {
TeamCastSpell(TEAM_HORDE, -SPELL_TENACITY);
+ VehicleCastSpell(TEAM_HORDE, -SPELL_TENACITY_VEHICLE);
+ }
}
m_tenacityStack = newStack;
@@ -390,11 +422,24 @@ void OPvPWintergrasp::UpdateTenacityStack()
if(newStack)
{
TeamId team = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE;
+ if(newStack < 0) newStack = -newStack;
for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
(*itr)->SetAuraStack(SPELL_TENACITY, *itr, newStack);
+ for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
+ (*itr)->SetAuraStack(SPELL_TENACITY_VEHICLE, *itr, newStack);
}
}
+void OPvPWintergrasp::VehicleCastSpell(TeamId team, int32 spellId)
+{
+ if(spellId > 0)
+ for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
+ (*itr)->CastSpell(*itr, (uint32)spellId, true);
+ else
+ for(VehicleSet::iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
+ (*itr)->RemoveAura((uint32)-spellId); // by stack?
+}
+
bool OPvPWintergrasp::Update(uint32 diff)
{
if(m_timer > diff)
@@ -403,20 +448,75 @@ bool OPvPWintergrasp::Update(uint32 diff)
{
if(m_wartime)
{
- m_wartime = false;
- m_timer = 600000; // for test, should be 2 hour 30 min
if(m_defender == TEAM_ALLIANCE)
sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has successfully defended the fortress!");
else
sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has successfully defended the fortress!");
+ GiveReward();
+ EndBattle();
}
else
{
- m_wartime = true;
- m_timer = 30*60*1000;
sWorld.SendZoneText(ZONE_WINTERGRASP, "Battle begins!");
UpdateAllWorldObject();
+ StartBattle();
}
}
return false;
}
+
+void OPvPWintergrasp::ChangeDefender()
+{
+ m_defender = OTHER_TEAM(m_defender);
+ if(m_defender == TEAM_ALLIANCE)
+ sWorld.SendZoneText(ZONE_WINTERGRASP, "Alliance has taken over the fortress!");
+ else
+ sWorld.SendZoneText(ZONE_WINTERGRASP, "Horde has taken over the fortress!");
+ UpdateAllWorldObject();
+
+ GiveReward();
+ EndBattle();
+}
+
+void OPvPWintergrasp::GiveReward()
+{
+ for(uint32 team = 0; team < 2; ++team)
+ for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
+ if((*itr)->HasAura(SPELL_LIEUTENANT))
+ (*itr)->CastSpell(*itr, team == m_defender ? SPELL_VICTORY_REWARD : SPELL_DEFEAT_REWARD, true);
+}
+
+void OPvPWintergrasp::StartBattle()
+{
+ m_wartime = true;
+ m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME) * MINUTE * IN_MILISECONDS;
+
+ for(uint32 team = 0; team < 2; ++team)
+ {
+ for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
+ {
+ (*itr)->RemoveAura(SPELL_RECRUIT);
+ (*itr)->RemoveAura(SPELL_CORPORAL);
+ (*itr)->RemoveAura(SPELL_LIEUTENANT);
+ (*itr)->CastSpell(*itr, SPELL_RECRUIT, true);
+ }
+ }
+}
+
+void OPvPWintergrasp::EndBattle()
+{
+ m_wartime = false;
+ m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL) * MINUTE * IN_MILISECONDS;
+
+ for(uint32 team = 0; team < 2; ++team)
+ {
+ VehicleCastSpell(TeamId(team), SPELL_SHUTDOWN_VEHICLE);
+
+ for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
+ {
+ (*itr)->RemoveAura(SPELL_RECRUIT);
+ (*itr)->RemoveAura(SPELL_CORPORAL);
+ (*itr)->RemoveAura(SPELL_LIEUTENANT);
+ }
+ }
+}
diff --git a/src/game/Wintergrasp.h b/src/game/Wintergrasp.h
index 5a39652cecd..11f9865f72b 100644
--- a/src/game/Wintergrasp.h
+++ b/src/game/Wintergrasp.h
@@ -35,6 +35,38 @@ const uint32 WintergraspFaction[2] = {1732, 1735};
#define SPELL_TENACITY 58549
#define SPELL_TENACITY_VEHICLE 59911
+#define SPELL_VICTORY_REWARD 56902
+#define SPELL_DEFEAT_REWARD 58494
+
+#define SPELL_SHUTDOWN_VEHICLE 21247
+
+const uint32 WG_KEEP_CM = 0; //Need data
+const uint32 WG_RULERS_BUFF = 52108;
+//some cosmetics :D
+const uint32 WG_VICTORY_AURA = 60044;
+
+enum OutdoorPvP_WG_Sounds
+{
+/*TODO OutdoorPvP_WG_SOUND_KEEP_CLAIMED = 8192,
+ OutdoorPvP_WG_SOUND_KEEP_CAPTURED_ALLIANCE = 8173,
+ OutdoorPvP_WG_SOUND_KEEP_CAPTURED_HORDE = 8213,
+ OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_ALLIANCE = 8212,
+ OutdoorPvP_WG_SOUND_KEEP_ASSAULTED_HORDE = 8174,
+ OutdoorPvP_WG_SOUND_NEAR_VICTORY = 8456
+*/
+};
+
+enum OutdoorPvP_WG_KeepStatus
+{
+ OutdoorPvP_WG_KEEP_TYPE_NEUTRAL = 0,
+ OutdoorPvP_WG_KEEP_TYPE_CONTESTED = 1,
+ OutdoorPvP_WG_KEEP_STATUS_ALLY_CONTESTED = 1,
+ OutdoorPvP_WG_KEEP_STATUS_HORDE_CONTESTED = 2,
+ OutdoorPvP_WG_KEEP_TYPE_OCCUPIED = 3,
+ OutdoorPvP_WG_KEEP_STATUS_ALLY_OCCUPIED = 3,
+ OutdoorPvP_WG_KEEP_STATUS_HORDE_OCCUPIED = 4
+};
+
enum DamageState
{
DAMAGE_INTACT,
@@ -75,12 +107,13 @@ class OPvPWintergrasp : public OutdoorPvP
protected:
typedef std::map<uint32, BuildingState *> BuildingStateMap;
typedef std::set<Creature*> CreatureSet;
+ typedef std::set<Vehicle*> VehicleSet;
typedef std::set<GameObject*> GameObjectSet;
public:
explicit OPvPWintergrasp() : m_tenacityStack(0) {}
bool SetupOutdoorPvP();
- uint32 GetCreatureEntry(uint32 guidlow, uint32 entry);
+ uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data);
//uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry);
void OnCreatureCreate(Creature *creature, bool add);
@@ -102,6 +135,7 @@ class OPvPWintergrasp : public OutdoorPvP
BuildingStateMap m_buildingStates;
CreatureSet m_creatures;
+ VehicleSet m_vehicles[2];
GameObjectSet m_gobjects;
TeamPairMap m_creEntryPair, m_goDisplayPair;
@@ -117,6 +151,11 @@ class OPvPWintergrasp : public OutdoorPvP
bool UpdateGameObjectInfo(GameObject *go);
void RebuildAllBuildings();
+ void StartBattle();
+ void EndBattle();
+ void GiveReward();
+
+ void VehicleCastSpell(TeamId team, int32 spellId);
};
#endif
diff --git a/src/game/World.cpp b/src/game/World.cpp
index cf14b846508..89362474f85 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -1079,6 +1079,9 @@ void World::LoadConfigSettings(bool reload)
m_configs[CONFIG_PVP_TOKEN_COUNT] = sConfig.GetIntDefault("PvPToken.ItemCount", 1);
if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1)
m_configs[CONFIG_PVP_TOKEN_COUNT] = 1;
+ m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.StartTime", 30);
+ m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.BattleTime", 30);
+ m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.Interval", 150);
m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false);
m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false);
m_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfig.GetIntDefault("RecordUpdateTimeDiffInterval", 60000);
diff --git a/src/game/World.h b/src/game/World.h
index 92fe74f9b81..3ff814a4d73 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -225,6 +225,9 @@ enum WorldConfigs
CONFIG_PVP_TOKEN_MAP_TYPE,
CONFIG_PVP_TOKEN_ID,
CONFIG_PVP_TOKEN_COUNT,
+ CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME,
+ CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME,
+ CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL,
CONFIG_NO_RESET_TALENT_COST,
CONFIG_SHOW_KICK_IN_WORLD,
CONFIG_INTERVAL_LOG_UPDATE,
diff --git a/src/game/ZoneScript.h b/src/game/ZoneScript.h
index e0674d3fdd4..6ace3c36474 100644
--- a/src/game/ZoneScript.h
+++ b/src/game/ZoneScript.h
@@ -20,7 +20,9 @@
#define ZONE_SCRIPT_H_
#include "Common.h"
+#include "Creature.h"
+//struct CreatureData;
class Creature;
class GameObject;
@@ -29,7 +31,7 @@ class TRINITY_DLL_SPEC ZoneScript
public:
explicit ZoneScript() {}
- virtual uint32 GetCreatureEntry(uint32 guidlow, uint32 entry) { return entry; }
+ virtual uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data) { return data->id; }
virtual uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry) { return entry; }
virtual void OnCreatureCreate(Creature *, bool add) {}
diff --git a/src/shared/Database/Database.h b/src/shared/Database/Database.h
index 493ec8a76c0..7f2bdaefdb7 100644
--- a/src/shared/Database/Database.h
+++ b/src/shared/Database/Database.h
@@ -81,16 +81,16 @@ class TRINITY_DLL_SPEC Database
template<class Class, typename ParamType1>
bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6);
template<class Class, typename ParamType1, typename ParamType2>
- bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6);
+ bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(6,7);
template<class Class, typename ParamType1, typename ParamType2, typename ParamType3>
- bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6);
+ bool AsyncPQuery(Class *object, void (Class::*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(7,8);
// PQuery / static
template<typename ParamType1>
- bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(5,6);
+ bool AsyncPQuery(void (*method)(QueryResult*, ParamType1), ParamType1 param1, const char *format,...) ATTR_PRINTF(4,5);
template<typename ParamType1, typename ParamType2>
bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2), ParamType1 param1, ParamType2 param2, const char *format,...) ATTR_PRINTF(5,6);
template<typename ParamType1, typename ParamType2, typename ParamType3>
- bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(5,6);
+ bool AsyncPQuery(void (*method)(QueryResult*, ParamType1, ParamType2, ParamType3), ParamType1 param1, ParamType2 param2, ParamType3 param3, const char *format,...) ATTR_PRINTF(6,7);
template<class Class>
// QueryHolder
bool DelayQueryHolder(Class *object, void (Class::*method)(QueryResult*, SqlQueryHolder*), SqlQueryHolder *holder);
diff --git a/src/shared/vmap/CoordModelMapping.cpp b/src/shared/vmap/CoordModelMapping.cpp
index 5dd23f306aa..86e3347a614 100644
--- a/src/shared/vmap/CoordModelMapping.cpp
+++ b/src/shared/vmap/CoordModelMapping.cpp
@@ -21,6 +21,7 @@
#include "CoordModelMapping.h"
#include <string.h>
+#include <cstdio>
using namespace G3D;
diff --git a/src/shared/vmap/CoordModelMapping.h b/src/shared/vmap/CoordModelMapping.h
index 7c89f0e8a0f..c1f49462962 100644
--- a/src/shared/vmap/CoordModelMapping.h
+++ b/src/shared/vmap/CoordModelMapping.h
@@ -21,6 +21,7 @@
#ifndef _COORDMODELMAPPING_H_
#define _COORDMODELMAPPING_H_
+#include <cstdio>
#include <G3D/Table.h>
#include <G3D/Array.h>
diff --git a/src/shared/vmap/DebugCmdLogger.cpp b/src/shared/vmap/DebugCmdLogger.cpp
index de656f4cfc5..e6b36572c45 100644
--- a/src/shared/vmap/DebugCmdLogger.cpp
+++ b/src/shared/vmap/DebugCmdLogger.cpp
@@ -18,6 +18,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <cstdio>
+
#include "DebugCmdLogger.h"
using namespace G3D;
diff --git a/src/shared/vmap/TileAssembler.cpp b/src/shared/vmap/TileAssembler.cpp
index c2918a64fa4..cbaa4e58108 100644
--- a/src/shared/vmap/TileAssembler.cpp
+++ b/src/shared/vmap/TileAssembler.cpp
@@ -373,7 +373,7 @@ namespace VMAP
if(!rf)
{
printf("ERROR: Can't open model file in form: %s",pModelFilename.c_str());
- printf("... or form: %s",filename );
+ printf("... or form: %s",filename.c_str() );
return false;
}
diff --git a/src/trinitycore/CliRunnable.cpp b/src/trinitycore/CliRunnable.cpp
index 96719b25cf7..1da2a30b4f7 100644
--- a/src/trinitycore/CliRunnable.cpp
+++ b/src/trinitycore/CliRunnable.cpp
@@ -23,19 +23,20 @@
/// \file
#include "Common.h"
-#include "Language.h"
-#include "Log.h"
-#include "World.h"
-#include "ScriptCalls.h"
#include "ObjectMgr.h"
+#include "World.h"
#include "WorldSession.h"
#include "Config/ConfigEnv.h"
-#include "Util.h"
+
#include "AccountMgr.h"
+#include "Chat.h"
#include "CliRunnable.h"
+#include "Language.h"
+#include "Log.h"
#include "MapManager.h"
#include "Player.h"
-#include "Chat.h"
+#include "ScriptCalls.h"
+#include "Util.h"
void utf8print(const char* str)
{
diff --git a/src/trinitycore/Main.cpp b/src/trinitycore/Main.cpp
index 7b00073026d..eb51c770896 100644
--- a/src/trinitycore/Main.cpp
+++ b/src/trinitycore/Main.cpp
@@ -22,12 +22,17 @@
/// @{
/// \file
+#include <openssl/opensslv.h>
+#include <openssl/crypto.h>
+
#include "Common.h"
#include "Database/DatabaseEnv.h"
#include "Config/ConfigEnv.h"
+
#include "Log.h"
#include "Master.h"
+
#ifndef _TRINITY_CORE_CONFIG
# define _TRINITY_CORE_CONFIG "TrinityCore.conf"
#endif //_TRINITY_CORE_CONFIG
@@ -152,6 +157,13 @@ extern int main(int argc, char **argv)
while (pause > clock()) {}
}
+ sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
+ if (SSLeay() < 0x009080bfL )
+ {
+ sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!");
+ sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]");
+ }
+
///- and run the 'Master'
/// \todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd?
return sMaster.Run();
diff --git a/src/trinitycore/Master.cpp b/src/trinitycore/Master.cpp
index 2e2d75d5c3c..4d7eca8f04e 100644
--- a/src/trinitycore/Master.cpp
+++ b/src/trinitycore/Master.cpp
@@ -24,21 +24,22 @@
#include <ace/OS_NS_signal.h>
-#include "WorldSocketMgr.h"
#include "Common.h"
-#include "Master.h"
-#include "WorldSocket.h"
-#include "WorldRunnable.h"
-#include "World.h"
-#include "Log.h"
-#include "Timer.h"
-#include "Policies/SingletonImp.h"
#include "SystemConfig.h"
+#include "World.h"
+#include "WorldRunnable.h"
+#include "WorldSocket.h"
+#include "WorldSocketMgr.h"
#include "Config/ConfigEnv.h"
#include "Database/DatabaseEnv.h"
+#include "Policies/SingletonImp.h"
+
#include "CliRunnable.h"
+#include "Log.h"
+#include "Master.h"
#include "RASocket.h"
#include "ScriptCalls.h"
+#include "Timer.h"
#include "Util.h"
#include "sockets/TcpSocket.h"
diff --git a/src/trinitycore/RASocket.cpp b/src/trinitycore/RASocket.cpp
index ccda5ba7548..50a1af87256 100644
--- a/src/trinitycore/RASocket.cpp
+++ b/src/trinitycore/RASocket.cpp
@@ -23,13 +23,14 @@
*/
#include "Common.h"
+#include "Config/ConfigEnv.h"
#include "Database/DatabaseEnv.h"
+
+#include "AccountMgr.h"
#include "Log.h"
#include "RASocket.h"
-#include "World.h"
-#include "Config/ConfigEnv.h"
#include "Util.h"
-#include "AccountMgr.h"
+#include "World.h"
/// \todo Make this thread safe if in the future 2 admins should be able to log at the same time.
SOCKET r;
diff --git a/src/trinitycore/RASocket.h b/src/trinitycore/RASocket.h
index 8900e689b2c..330c85defa4 100644
--- a/src/trinitycore/RASocket.h
+++ b/src/trinitycore/RASocket.h
@@ -25,9 +25,10 @@
#ifndef _RASOCKET_H
#define _RASOCKET_H
-#include "Common.h"
#include "sockets/TcpSocket.h"
+#include "Common.h"
+
#define RA_BUFF_SIZE 1024
class ISocketHandler;
diff --git a/src/trinitycore/WorldRunnable.cpp b/src/trinitycore/WorldRunnable.cpp
index bd4d3170c52..ad0243a36ae 100644
--- a/src/trinitycore/WorldRunnable.cpp
+++ b/src/trinitycore/WorldRunnable.cpp
@@ -22,17 +22,17 @@
\ingroup Trinityd
*/
-#include "WorldSocketMgr.h"
#include "Common.h"
-#include "World.h"
-#include "WorldRunnable.h"
-#include "Timer.h"
#include "ObjectAccessor.h"
-#include "MapManager.h"
-#include "BattleGroundMgr.h"
-
+#include "World.h"
+#include "WorldSocketMgr.h"
#include "Database/DatabaseEnv.h"
+#include "BattleGroundMgr.h"
+#include "MapManager.h"
+#include "Timer.h"
+#include "WorldRunnable.h"
+
#if (defined(WIN32) || defined(SHORT_SLEEP))
#define WORLD_SLEEP_CONST 50
#else
diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist
index ca6ec3a15d4..30b1c723e0a 100644
--- a/src/trinitycore/trinitycore.conf.dist
+++ b/src/trinitycore/trinitycore.conf.dist
@@ -1583,6 +1583,14 @@ Ra.Secure = 1
# NoResetTalentsCost
# Enable or disable no cost when reseting talents
#
+#
+# OutdoorPvP.Wintergrasp.StartTime = 30
+# The start time of the first battle after server starts (default: 30 minutes)
+# OutdoorPvP.Wintergrasp.BattleTime = 30
+# Time limit of a battle
+# OutdoorPvP.Wintergrasp.Interval
+# Interval between battles (default: 150 minutes)
+#
# ForbiddenMaps
# map ids that users below SEC_GAMEMASTER cannot enter, with delimiter ','
# Default: ""
@@ -1624,6 +1632,9 @@ PvPToken.Enable = 0
PvPToken.MapAllowType = 4
PvPToken.ItemID = 29434
PvPToken.ItemCount = 1
+OutdoorPvP.Wintergrasp.StartTime = 30
+OutdoorPvP.Wintergrasp.BattleTime = 30
+OutdoorPvP.Wintergrasp.Interval = 150
NoResetTalentsCost = 0
ShowKickInWorld = 0
RecordUpdateTimeDiffInterval = 60000
diff --git a/src/trinityrealm/AuthSocket.cpp b/src/trinityrealm/AuthSocket.cpp
index 8c9eab653ec..9933a237981 100644
--- a/src/trinityrealm/AuthSocket.cpp
+++ b/src/trinityrealm/AuthSocket.cpp
@@ -21,17 +21,19 @@
/** \file
\ingroup realmd
*/
+#include <openssl/md5.h>
#include "Common.h"
+#include "Auth/Sha1.h"
+#include "Config/ConfigEnv.h"
#include "Database/DatabaseEnv.h"
+
+#include "AuthCodes.h"
+#include "AuthSocket.h"
#include "ByteBuffer.h"
-#include "Config/ConfigEnv.h"
#include "Log.h"
#include "RealmList.h"
-#include "AuthSocket.h"
-#include "AuthCodes.h"
-#include <openssl/md5.h>
-#include "Auth/Sha1.h"
+
//#include "Util.h" -- for commented utf8ToUpperOnlyLatin
extern RealmList m_realmList;
diff --git a/src/trinityrealm/AuthSocket.h b/src/trinityrealm/AuthSocket.h
index 43b880a1e74..d20e8429752 100644
--- a/src/trinityrealm/AuthSocket.h
+++ b/src/trinityrealm/AuthSocket.h
@@ -25,8 +25,6 @@
#ifndef _AUTHSOCKET_H
#define _AUTHSOCKET_H
-#include "Common.h"
-#include "Auth/BigNumber.h"
#include "sockets/TcpSocket.h"
#include "sockets/SocketHandler.h"
#include "sockets/ListenSocket.h"
@@ -34,6 +32,9 @@
#include "sockets/Parse.h"
#include "sockets/Socket.h"
+#include "Common.h"
+#include "Auth/BigNumber.h"
+
/// Handle login commands
class AuthSocket: public TcpSocket
{
diff --git a/src/trinityrealm/Main.cpp b/src/trinityrealm/Main.cpp
index cbadd4d1e4c..68449ed3d71 100644
--- a/src/trinityrealm/Main.cpp
+++ b/src/trinityrealm/Main.cpp
@@ -22,14 +22,17 @@
/// @{
/// \file
-#include "Common.h"
-#include "Database/DatabaseEnv.h"
-#include "RealmList.h"
+#include <openssl/opensslv.h>
+#include <openssl/crypto.h>
+#include "Common.h"
#include "Config/ConfigEnv.h"
-#include "Log.h"
+#include "Database/DatabaseEnv.h"
#include "sockets/ListenSocket.h"
+
#include "AuthSocket.h"
+#include "Log.h"
+#include "RealmList.h"
#include "SystemConfig.h"
#include "Util.h"
@@ -162,6 +165,13 @@ extern int main(int argc, char **argv)
while (pause > clock()) {}
}
+ sLog.outDetail("%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
+ if (SSLeay() < 0x009080bfL )
+ {
+ sLog.outDetail("WARNING: Outdated version of OpenSSL lib. Logins to server impossible!");
+ sLog.outDetail("WARNING: Minimal required version [OpenSSL 0.9.8k]");
+ }
+
sLog.outString( "%s (realm-daemon)", _FULLVERSION );
sLog.outString( "<Ctrl-C> to stop.\n" );
diff --git a/src/trinityrealm/RealmList.cpp b/src/trinityrealm/RealmList.cpp
index 6a3d6b47e0f..9f9e39df050 100644
--- a/src/trinityrealm/RealmList.cpp
+++ b/src/trinityrealm/RealmList.cpp
@@ -23,9 +23,10 @@
*/
#include "Common.h"
-#include "RealmList.h"
-#include "Policies/SingletonImp.h"
#include "Database/DatabaseEnv.h"
+#include "Policies/SingletonImp.h"
+
+#include "RealmList.h"
INSTANTIATE_SINGLETON_1( RealmList );