aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac37
-rw-r--r--contrib/mysql_to_pgsql/src/defines.h15
-rw-r--r--contrib/vmap_extractor_v2/stormlib/StormPort.h2
-rw-r--r--contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp8
-rw-r--r--contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c16
-rw-r--r--contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c2
-rw-r--r--contrib/vmap_extractor_v2/stormlib/bzip2/compress.c19
-rw-r--r--dep/include/sockets/socket_include.h16
-rw-r--r--dep/src/g3dlite/System.cpp4
-rw-r--r--dep/src/sockets/SocketHandler.cpp1
-rw-r--r--dep/src/sockets/StdoutLog.cpp3
-rw-r--r--dep/src/sockets/TcpSocket.cpp1
-rw-r--r--sql/mangos.sql10
-rw-r--r--sql/realmd.sql22
-rw-r--r--sql/updates/3649_world.sql2
-rw-r--r--sql/updates/3689_TC1_1534_world.sql (renamed from sql/updates/TC1_1534_world.sql)3
-rw-r--r--sql/updates/3691_TC1_919_world.sql2
-rw-r--r--sql/updates/3715_mangos_7932_01_characters_character_pet.sql (renamed from sql/updates/7932_01_characters_character_pet.sql)5
-rw-r--r--sql/updates/3724_world.sql2
-rw-r--r--sql/updates/3729_mangos_7938_01_realmd_account.sql4
-rw-r--r--sql/updates/3736_world_spell_(dk).sql3
-rw-r--r--sql/updates/3747_mangos_7945_01_quest_template.sql9
-rw-r--r--sql/updates/919_world.sql3
-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
316 files changed, 2146 insertions, 1672 deletions
diff --git a/configure.ac b/configure.ac
index d1ec818ac99..bd2b492ebeb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -183,39 +183,6 @@ Debugging options:
])
AC_MSG_RESULT($TRINITYD_DEBUG_INFO)
-
-# Enable CLI console?
-AC_MSG_CHECKING(whether cli console is enabled)
-TRINITYD_ENABLE_CLI=no
-AC_ARG_ENABLE(cli,
-[ --enable-cli Turn on command console system],
-[
- if test "$enableval" = "yes" ; then
- CFLAGS="-DENABLE_CLI $CFLAGS"
- CXXFLAGS="-DENABLE_CLI $CXXFLAGS"
- TRINITYD_ENABLE_CLI=yes
- elif test "$withval" != "no" ; then
- AC_MSG_ERROR(Please choose yes or no)
- fi
-])
-AC_MSG_RESULT($TRINITYD_ENABLE_CLI)
-
-# Enable remote console?
-AC_MSG_CHECKING(whether remote console is enabled)
-TRINITYD_ENABLE_RA=no
-AC_ARG_ENABLE(ra,
-[ --enable-ra Turn on remote console system],
-[
- if test "$enableval" = "yes" ; then
- CFLAGS="-DENABLE_RA $CFLAGS"
- CXXFLAGS="-DENABLE_RA $CXXFLAGS"
- TRINITYD_ENABLE_RA=yes
- elif test "$withval" != "no" ; then
- AC_MSG_ERROR(Please choose yes or no)
- fi
-])
-AC_MSG_RESULT($TRINITYD_ENABLE_RA)
-
# Enable large cells?
AC_MSG_CHECKING(whether we use large cells)
TRINITYD_ENABLE_LC=no
@@ -263,10 +230,8 @@ AC_CHECK_HEADERS([zlib.h])
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
-AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
-AC_TYPE_UINT64_T
AC_C_VOLATILE
AC_CHECK_TYPES([ptrdiff_t])
@@ -324,8 +289,6 @@ TRINI_LIBS="$POSTGRE_LIBS $MYSQL_LIBS $ZLIB $COMPATLIB $SSLLIB $TRINI_LIBS"
## Export defined variables
AC_SUBST(DOXYGEN)
AC_SUBST(TRINITYD_DEBUG_INFO)
-AC_SUBST(TRINITYD_ENABLE_CLI)
-AC_SUBST(TRINITYD_ENABLE_RA)
## Additional CPPFLAGS and LDFLAGS.
AC_SUBST(TRINI_INCLUDES)
diff --git a/contrib/mysql_to_pgsql/src/defines.h b/contrib/mysql_to_pgsql/src/defines.h
index 662a7aab2fd..ed151bf5fae 100644
--- a/contrib/mysql_to_pgsql/src/defines.h
+++ b/contrib/mysql_to_pgsql/src/defines.h
@@ -89,9 +89,20 @@ string ConvertNativeType(enum_field_types mysqlType, uint32 length)
case FIELD_TYPE_INT24:
return "integer";
case FIELD_TYPE_LONGLONG:
- return "int8";
case FIELD_TYPE_LONG:
- return "bigint";
+ {
+ string temp;
+ char str[10];
+ temp = "numeric";
+ if (length)
+ {
+ temp.append("(");
+ sprintf(str,"%d",length);
+ temp.append(str);
+ temp.append(")");
+ }
+ return temp;
+ }
case FIELD_TYPE_DECIMAL:
case FIELD_TYPE_FLOAT:
case FIELD_TYPE_DOUBLE:
diff --git a/contrib/vmap_extractor_v2/stormlib/StormPort.h b/contrib/vmap_extractor_v2/stormlib/StormPort.h
index 4cb8d84bd57..6254f84e725 100644
--- a/contrib/vmap_extractor_v2/stormlib/StormPort.h
+++ b/contrib/vmap_extractor_v2/stormlib/StormPort.h
@@ -20,7 +20,7 @@
/* 12.11.03 1.02 Dan Macintosh compatibility */
/* 24.07.04 1.03 Sam Mac OS X compatibility */
/* 22.11.06 1.04 Sam Mac OS X compatibility (for StormLib 6.0) */
-/* 31.12.06 1.05 XPinguin Full GNU/Linux compatibility */
+/* 31.12.06 1.05 XPinguin Full GNU/Linux compatibility */
/*****************************************************************************/
#ifndef __STORMPORT_H__
diff --git a/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp b/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp
index 0cd827fde9f..afbbd985a7f 100644
--- a/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp
+++ b/contrib/vmap_extractor_v2/stormlib/StormPortLinux.cpp
@@ -2,7 +2,7 @@
*
* Description: implementation for StormLib - linux port
* intended to be used in GLdiablo
-*
+*
* ----> StormLib was originally developed for Windows by
* Ladislav Zezula (www.zezula.net), and he did
* a _great_ job! Thanks Ladislav!
@@ -17,9 +17,9 @@
*
* Author: Marko Friedemann <marko.friedemann@bmx-chemnitz.de>
* Created at: Mon Jan 29 19:01:37 CEST 2001
-* Computer: whiplash.flachland-chemnitz.de
+* Computer: whiplash.flachland-chemnitz.de
* System: Linux 2.4.0 on i686
-*
+*
* Copyright (c) 2001 BMX-Chemnitz.DE All rights reserved.
*
********************************************************************/
@@ -163,6 +163,6 @@ BOOL DeleteFile(const char *lpFileName)
BOOL MoveFile(const char *lpExistingFileName, const char *lpNewFileName)
{
return rename(lpExistingFileName, lpNewFileName);
-}
+}
#endif
diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c b/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c
index 33ec9f5dcb0..906124b97e6 100644
--- a/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c
+++ b/contrib/vmap_extractor_v2/stormlib/bzip2/blocksort.c
@@ -17,16 +17,16 @@
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- 2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
+ 2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
3. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.
- 4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
+ 4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
@@ -57,8 +57,8 @@
For more information on these sources, see the manual.
- To get some idea how the block sorting algorithms in this file
- work, read my paper
+ To get some idea how the block sorting algorithms in this file
+ work, read my paper
On the Performance of BWT Sorting Algorithms
in Proceedings of the IEEE Data Compression Conference 2000,
Snowbird, Utah, USA, 27-30 March 2000. The main sort in this
@@ -321,7 +321,7 @@ void fallbackSort ( UInt32* fmap,
r = -1;
while (1) {
- /*-- find the next non-singleton bucket --*/
+ /*-- find the next non-singleton bucket --*/
k = r + 1;
while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
if (ISSET_BH(k)) {
diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c b/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c
index 195f51a7840..3d405f9322a 100644
--- a/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c
+++ b/contrib/vmap_extractor_v2/stormlib/bzip2/bzlib.c
@@ -471,7 +471,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
}
else
- if (action == BZ_FLUSH) {
+ if (action == BZ_FLUSH) {
s->avail_in_expect = strm->avail_in;
s->mode = BZ_M_FLUSHING;
goto preswitch;
diff --git a/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c b/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c
index 7e0c29155ab..156056fb376 100644
--- a/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c
+++ b/contrib/vmap_extractor_v2/stormlib/bzip2/compress.c
@@ -373,14 +373,14 @@ void sendMTFValues ( EState* s )
/*---
Set up an auxiliary length table which is used to fast-track
- the common case (nGroups == 6).
+ the common case (nGroups == 6).
---*/
if (nGroups == 6) {
for (v = 0; v < alphaSize; v++) {
s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
- }
+ }
}
nSelectors = 0;
@@ -429,14 +429,14 @@ void sendMTFValues ( EState* s )
cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
} else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++) {
+ /*--- slow version which correctly handles all situations ---*/
+ for (i = gs; i <= ge; i++) {
UInt16 icv = mtfv[i];
for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
}
}
-
- /*--
+
+ /*--
Find the coding table which is best for this group,
and record its identity in the selector table.
--*/
@@ -470,7 +470,7 @@ void sendMTFValues ( EState* s )
# undef BZ_ITUR
} else {
- /*--- slow version which correctly handles all situations ---*/
+ /*--- slow version which correctly handles all situations ---*/
for (i = gs; i <= ge; i++)
s->rfreq[bt][ mtfv[i] ]++;
}
@@ -623,15 +623,14 @@ void sendMTFValues ( EState* s )
# undef BZ_ITAH
} else {
- /*--- slow version which correctly handles all situations ---*/
+ /*--- slow version which correctly handles all situations ---*/
for (i = gs; i <= ge; i++) {
- bsW ( s,
+ bsW ( s,
s->len [s->selector[selCtr]] [mtfv[i]],
s->code [s->selector[selCtr]] [mtfv[i]] );
}
}
-
gs = ge+1;
selCtr++;
}
diff --git a/dep/include/sockets/socket_include.h b/dep/include/sockets/socket_include.h
index 31960ccee05..dcfd4acfbd6 100644
--- a/dep/include/sockets/socket_include.h
+++ b/dep/include/sockets/socket_include.h
@@ -150,14 +150,14 @@ namespace SOCKETS_NAMESPACE {
# error FreeBSD versions prior to 400014 does not support ipv6
# endif
-#elif defined __NetBSD__
-# if !defined(MSG_NOSIGNAL)
-# define MSG_NOSIGNAL 0
-# endif
-# include <netinet/in.h>
-typedef in_addr_t ipaddr_t;
-typedef in_port_t port_t;
-#elif defined MACOSX
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+# if !defined(MSG_NOSIGNAL)
+# define MSG_NOSIGNAL 0
+# endif
+# include <netinet/in.h>
+typedef in_addr_t ipaddr_t;
+typedef in_port_t port_t;
+#elif defined MACOSX
// ----------------------------------------
// Mac OS X
#include <string.h>
diff --git a/dep/src/g3dlite/System.cpp b/dep/src/g3dlite/System.cpp
index cb7169a4c4d..88fd39b52ca 100644
--- a/dep/src/g3dlite/System.cpp
+++ b/dep/src/g3dlite/System.cpp
@@ -23,6 +23,10 @@
#include "G3D/debug.h"
#include "G3D/format.h"
+#if defined(__OpenBSD__)
+ #include <stdint.h>
+#endif
+
#ifdef G3D_WIN32
#include <conio.h>
diff --git a/dep/src/sockets/SocketHandler.cpp b/dep/src/sockets/SocketHandler.cpp
index 7ade1e99eb6..48bd1a6f61c 100644
--- a/dep/src/sockets/SocketHandler.cpp
+++ b/dep/src/sockets/SocketHandler.cpp
@@ -34,6 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#endif
#include <stdlib.h>
#include <errno.h>
+#include <cstdio>
#include "SocketHandler.h"
#include "UdpSocket.h"
diff --git a/dep/src/sockets/StdoutLog.cpp b/dep/src/sockets/StdoutLog.cpp
index 054b8489bb3..092e014a68f 100644
--- a/dep/src/sockets/StdoutLog.cpp
+++ b/dep/src/sockets/StdoutLog.cpp
@@ -30,6 +30,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifdef _MSC_VER
#pragma warning(disable:4786)
#endif
+
+#include <cstdio>
+
#include "ISocketHandler.h"
#include "Socket.h"
#include "StdoutLog.h"
diff --git a/dep/src/sockets/TcpSocket.cpp b/dep/src/sockets/TcpSocket.cpp
index 9dab541eebe..523b83464bd 100644
--- a/dep/src/sockets/TcpSocket.cpp
+++ b/dep/src/sockets/TcpSocket.cpp
@@ -44,6 +44,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <openssl/err.h>
#endif
#include <map>
+#include <cstdio>
#include "TcpSocket.h"
#include "Utility.h"
diff --git a/sql/mangos.sql b/sql/mangos.sql
index e8455a0c4ee..346495436d3 100644
--- a/sql/mangos.sql
+++ b/sql/mangos.sql
@@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`;
CREATE TABLE `db_version` (
`version` varchar(120) default NULL,
`creature_ai_version` varchar(120) default NULL,
- `required_7908_03_mangos_creature_template_addon` bit(1) default NULL
+ `required_7945_01_mangos_quest_template` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
--
@@ -13264,12 +13264,20 @@ CREATE TABLE `quest_template` (
`DetailsEmote2` smallint(5) unsigned NOT NULL default '0',
`DetailsEmote3` smallint(5) unsigned NOT NULL default '0',
`DetailsEmote4` smallint(5) unsigned NOT NULL default '0',
+ `DetailsEmoteDelay1` int(11) unsigned NOT NULL default '0',
+ `DetailsEmoteDelay2` int(11) unsigned NOT NULL default '0',
+ `DetailsEmoteDelay3` int(11) unsigned NOT NULL default '0',
+ `DetailsEmoteDelay4` int(11) unsigned NOT NULL default '0',
`IncompleteEmote` smallint(5) unsigned NOT NULL default '0',
`CompleteEmote` smallint(5) unsigned NOT NULL default '0',
`OfferRewardEmote1` smallint(5) unsigned NOT NULL default '0',
`OfferRewardEmote2` smallint(5) unsigned NOT NULL default '0',
`OfferRewardEmote3` smallint(5) unsigned NOT NULL default '0',
`OfferRewardEmote4` smallint(5) unsigned NOT NULL default '0',
+ `OfferRewardEmoteDelay1` int(11) unsigned NOT NULL default '0',
+ `OfferRewardEmoteDelay2` int(11) unsigned NOT NULL default '0',
+ `OfferRewardEmoteDelay3` int(11) unsigned NOT NULL default '0',
+ `OfferRewardEmoteDelay4` int(11) unsigned NOT NULL default '0',
`StartScript` mediumint(8) unsigned NOT NULL default '0',
`CompleteScript` mediumint(8) unsigned NOT NULL default '0',
PRIMARY KEY (`entry`)
diff --git a/sql/realmd.sql b/sql/realmd.sql
index fcd7d166359..f9d49de526c 100644
--- a/sql/realmd.sql
+++ b/sql/realmd.sql
@@ -15,13 +15,33 @@
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+/*
+--
+-- Table structure for table `realmd_db_version`
+--
+
+DROP TABLE IF EXISTS `realmd_db_version`;
+CREATE TABLE `realmd_db_version` (
+ `required_7938_01_realmd_account` bit(1) default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB';
+
+--
+-- Dumping data for table `realmd_db_version`
+--
+
+LOCK TABLES `realmd_db_version` WRITE;
+INSERT INTO `realmd_db_version` VALUES
+(NULL);
+UNLOCK TABLES;
+*/
+
--
-- Table structure for table `account`
--
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
- `id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'Identifier',
+ `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier',
`username` varchar(32) NOT NULL default '',
`sha_pass_hash` varchar(40) NOT NULL default '',
`gmlevel` tinyint(3) unsigned NOT NULL default '0',
diff --git a/sql/updates/3649_world.sql b/sql/updates/3649_world.sql
index a75ebe7b158..4d1948c753e 100644
--- a/sql/updates/3649_world.sql
+++ b/sql/updates/3649_world.sql
@@ -3,4 +3,4 @@ UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entr
UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` = 184595;
UPDATE `gameobject_template` SET `ScriptName` = 'go_ethereum_stasis' WHERE `entry` BETWEEN 185461 AND 185464;
-UPDATE `creature_template` SET `ScriptName` = 'npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494);
+UPDATE `creature_template` SET `ScriptName` = 'npc_engineering_tele_trinket' WHERE `entry` IN (14742, 14743, 21493, 21494); \ No newline at end of file
diff --git a/sql/updates/TC1_1534_world.sql b/sql/updates/3689_TC1_1534_world.sql
index cd80a785278..774e0f7ec1b 100644
--- a/sql/updates/TC1_1534_world.sql
+++ b/sql/updates/3689_TC1_1534_world.sql
@@ -1,3 +1,2 @@
UPDATE `creature_template` SET `ScriptName` = 'mob_ethereal_apprentice' WHERE `entry` = 18430;
-
-DELETE FROM `creature` WHERE `id` = 18431;
+DELETE FROM `creature` WHERE `id` = 18431; \ No newline at end of file
diff --git a/sql/updates/3691_TC1_919_world.sql b/sql/updates/3691_TC1_919_world.sql
new file mode 100644
index 00000000000..02e35d5a423
--- /dev/null
+++ b/sql/updates/3691_TC1_919_world.sql
@@ -0,0 +1,2 @@
+ALTER TABLE version
+ ADD `core_revision` varchar(120) AFTER `core_version`; \ No newline at end of file
diff --git a/sql/updates/7932_01_characters_character_pet.sql b/sql/updates/3715_mangos_7932_01_characters_character_pet.sql
index f797a79774c..7f272c92004 100644
--- a/sql/updates/7932_01_characters_character_pet.sql
+++ b/sql/updates/3715_mangos_7932_01_characters_character_pet.sql
@@ -1,9 +1,8 @@
--- ALTER TABLE character_db_version CHANGE COLUMN required_7903_01_characters_character_pet required_7932_01_characters_character_pet bit;
+/*ALTER TABLE character_db_version CHANGE COLUMN required_7903_01_characters_character_pet required_7932_01_characters_character_pet bit;*/
UPDATE character_pet
SET abdata = CONCAT(REPLACE(TRIM(abdata),' ',' '),' ');
UPDATE character_pet
SET abdata = SUBSTRING_INDEX(SUBSTRING_INDEX(abdata,' ',(10-3)*2),' ',-(10-3-3)*2)
- WHERE length(SUBSTRING_INDEX(abdata, ' ', 20)) < length(abdata) and length(SUBSTRING_INDEX(abdata, ' ', 21)) >= length(abdata);
-
+ WHERE length(SUBSTRING_INDEX(abdata, ' ', 20)) < length(abdata) and length(SUBSTRING_INDEX(abdata, ' ', 21)) >= length(abdata); \ No newline at end of file
diff --git a/sql/updates/3724_world.sql b/sql/updates/3724_world.sql
index 1269925e0ee..36c8a75c3d1 100644
--- a/sql/updates/3724_world.sql
+++ b/sql/updates/3724_world.sql
@@ -7,4 +7,4 @@ UPDATE creature_template SET `ScriptName`='npc_ros_dark_rider' WHERE `entry`=287
-- Spellclick spell to mount deathcharger
DELETE FROM npc_spellclick_spells WHERE `npc_entry`=28782;
INSERT INTO npc_spellclick_spells (`npc_entry`, `spell_id`, `quest_id`, `quest_status`, `cast_flags`) VALUES
-(28782, 52280, 12687, 3, 1);
+(28782, 52280, 12687, 3, 1); \ No newline at end of file
diff --git a/sql/updates/3729_mangos_7938_01_realmd_account.sql b/sql/updates/3729_mangos_7938_01_realmd_account.sql
new file mode 100644
index 00000000000..01c16d0b0bb
--- /dev/null
+++ b/sql/updates/3729_mangos_7938_01_realmd_account.sql
@@ -0,0 +1,4 @@
+/*ALTER TABLE realmd_db_version CHANGE COLUMN required_7867_01_realmd_account required_7938_01_realmd_account bit;*/
+
+ALTER TABLE account
+ CHANGE id id int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier'; \ No newline at end of file
diff --git a/sql/updates/3736_world_spell_(dk).sql b/sql/updates/3736_world_spell_(dk).sql
new file mode 100644
index 00000000000..4aa0c6b557c
--- /dev/null
+++ b/sql/updates/3736_world_spell_(dk).sql
@@ -0,0 +1,3 @@
+DELETE FROM spell_area WHERE spell = 52693;
+INSERT INTO spell_area (`spell`, `area`, `quest_start`, `quest_start_active`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`) VALUES
+(52693, 4298, 12687, 1, 12687, 0, 0, 0, 1); \ No newline at end of file
diff --git a/sql/updates/3747_mangos_7945_01_quest_template.sql b/sql/updates/3747_mangos_7945_01_quest_template.sql
new file mode 100644
index 00000000000..ab28ccd50f3
--- /dev/null
+++ b/sql/updates/3747_mangos_7945_01_quest_template.sql
@@ -0,0 +1,9 @@
+ALTER TABLE quest_template
+ ADD COLUMN `DetailsEmoteDelay1` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmote4`,
+ ADD COLUMN `DetailsEmoteDelay2` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay1`,
+ ADD COLUMN `DetailsEmoteDelay3` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay2`,
+ ADD COLUMN `DetailsEmoteDelay4` int(11) unsigned NOT NULL default '0' AFTER `DetailsEmoteDelay3`,
+ ADD COLUMN `OfferRewardEmoteDelay1` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmote4`,
+ ADD COLUMN `OfferRewardEmoteDelay2` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay1`,
+ ADD COLUMN `OfferRewardEmoteDelay3` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay2`,
+ ADD COLUMN `OfferRewardEmoteDelay4` int(11) unsigned NOT NULL default '0' AFTER `OfferRewardEmoteDelay3`;
diff --git a/sql/updates/919_world.sql b/sql/updates/919_world.sql
deleted file mode 100644
index 7aa9fa363e6..00000000000
--- a/sql/updates/919_world.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-ALTER TABLE version
- ADD `core_revision` varchar(120) AFTER `core_version`;
-
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 );